I have an xml file which looked something like this…
<RootElementTag>
<ChildElementTag1 attribute1="value1" />
<ChildElementTag1 attribute1="value2" />
<ChildElementTag1 attribute1="value4" />
</RootElementTag>
I had to retrieve all the “ChildElementTag1” nodes and process them in the order in which they appear in the file. I used org.w3c.dom.Document.getElementsByTagName("ChildElementTag1"); which returned me a NodeList in the order in which it appears in the xml file.
Now the xml changed a bit and a new Child node with a different tag name “ChildElementTag2” is included.
<RootElementTag>
<ChildElementTag1 attribute1="value1" />
<ChildElementTag1 attribute1="value2" />
<ChildElementTag2 attribute2="value3" />
<ChildElementTag1 attribute1="value4" />
<ChildElementTag2 attribute2="value5" />
</RootElementTag>
Is there a way to get all the 5 Child Element Nodes in the above xml snippet in the order in which they appear.
Note:- I did see org.w3c.dom.Document.getElementById() method which would need me to introduce an “id” attribute to each child node and order them based on their “id” attribute value. As of now I am not taking that approach hoping there is an easier way of doing this.
Call
getChildNodes()on theRootTagElementnode.I suspect you’ll find they are in the same order as they appear in the document. OTOH, you might also look to methods listed just below the one to which I linked. Specifically
getFirstChild()&getNextSibling()(which you would call on the first child, then repeatedly untilnull).