假设我有这个XML文件:
<attributes>
<units>
<civilians>
<unit>
<name>Settler</name>
<stats>
<attack>26</attack>
<defence>7</defence>
</stats>
<costs>
<lumber/>
<iron/>
</costs>
</unit>
<unit>
<name>Infantry</name>
<stats>
<attack>33</attack>
<defence>7</defence>
</stats>
<costs>
<lumber/>
<iron/>
</costs>
</unit>
</civilians>
</units>
</attributes>
节点属性上的getElementsByTagName(“attack”)是否返回NodeList,其中攻击元素在第一个位置包含26,而攻击元素在第二个位置包含33?
我一直在想这是事实,但似乎没有用。
如果不是这么简单;从XML文件中获取所有攻击值的好方法是什么?也许XML文件本身结构不合理?
编辑:啊。我现在得到了节点,而.getTextContent()而不是.getNodeValue()解决了我的问题。很抱歉给您带来不便。
答案 0 :(得分:7)
<强>的getElementsByTagName 强>
返回具有给定标记的所有后代元素的NodeList 名称,按其顺序排列 在前序遍历中遇到过 这个元素树。
<强>的getElementsByTagName 强>
返回具有给定标记的所有后代元素的NodeList 名称,按文件顺序。
所以你对这个功能的期望是正确的。如果这不是你得到的,那么你的代码或你正在使用的库中就会出现错误。
答案 1 :(得分:-2)
我从来没有使用过Java中的XML,但你肯定可以循环使用这些元素并检查每个元素是否有攻击密钥。对不起,如果这不是你想要的, 这正是我要做的,因为我不了解Java中的XML类。希望它有所帮助。