我有一个看起来像这样的xml文件......
<RootElementTag>
<ChildElementTag1 attribute1="value1" />
<ChildElementTag1 attribute1="value2" />
<ChildElementTag1 attribute1="value4" />
</RootElementTag>
我必须检索所有“ChildElementTag1”节点,并按照它们在文件中出现的顺序处理它们。我使用了org.w3c.dom.Document.getElementsByTagName("ChildElementTag1");
,它按照它在xml文件中出现的顺序返回了NodeList。
现在xml发生了一些变化,并且包含了一个具有不同标记名称“ChildElementTag2”的新Child节点。
<RootElementTag>
<ChildElementTag1 attribute1="value1" />
<ChildElementTag1 attribute1="value2" />
<ChildElementTag2 attribute2="value3" />
<ChildElementTag1 attribute1="value4" />
<ChildElementTag2 attribute2="value5" />
</RootElementTag>
有没有办法按照它们出现的顺序获取上述xml片段中的所有5个子元素节点。
注意: - 我确实看到了org.w3c.dom.Document.getElementById()
方法,它需要我为每个子节点引入一个“id”属性,并根据它们的“id”属性值对它们进行排序。截至目前,我并没有采取这种方法,希望有一种更简单的方法。
答案 0 :(得分:2)
在RootTagElement
节点上调用getChildNodes()
。
此方法的javadoc未提及NodeList按文档中显示的顺序返回。
我怀疑你会发现它们与文档中显示的顺序相同。 OTOH,您也可以查看我链接的下方列出的方法。特别是getFirstChild()
&amp; getNextSibling()
(您可以在第一个孩子上调用,然后重复调用null
)。