Garret Wilson wrote: > This worries me a bit regarding how one would use the DOM Level 2 in > practice. Let's say I have the following document: > > <myDocument xmlns="www.me.com" xmlns:myNS="www.me.com" > > <myElement myAttr="1"/> > <myElement myNS:myAttr="1"/> > </myDocument> > > Using the DOM Level 2, how can I elegantly get the value of the myElement > "a" attribute? Well, given that your document is inelegant, DOM Level 2 will not facilitate your life. Your two attributes are differents since there are not in the same namespace. In practice, you'd better use only one form in your document. > I can't use myElement.getAttributeNS(null, "myAttr"), because > that would work for the first nested element, not for the second. I can't > use myElement.getAttributeNS("www.me.com", "myAttr"), because that would > work for the second element, and not the first. I would instead have to use > Java code something like the following *every* time I want to get an > attribute using the DOM Level 2: > > public Attr findAttributeNS(Element element, String namespaceURI, String > localName) > { > Attr attr=element.getAttributeNS(namespaceURI, localName); > if(attr==null) > { > if(element.getNamespaceURI().equals(namespaceURI)) > { > attr=element.getAttributeNS(null, localName); > } > } > return attr; > } > > This to me seems very inelegant and inefficient. Is this how it's supposed > to work? Unfortunately yes but again, I would not recommend a such design in the same namespace. The returned attr will not have the same semantic depending on if it has a namespace or or. One more little point: findAttributeNS would better return only namespace aware nodes (to follow the design of DOM Level 2). PhilippeReceived on Friday, 22 December 2000 10:42:36 GMT
This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 27 October 2009 08:24:52 GMT