<?xml version="1.0" encoding="UTF-8"?>
<locations>
<location id="83">
<location_name>name</location_name>
<company_name>company a</company_name>
<machines>
<machine id="12">A</machine>
<machine id="312">B</machine>
</machines>
</location>
<location id="85">
<location_name>name</location_name>
<company_name>company c</company_name>
<machines>
<machine id="21">A</machine>
<machine id="45">B</machine>
</machines>
</location>
</locations>
我正在使用XOM并试图获取所有位置名称,但我不知道如何。
Element root = doc.getRootElement();
int i = 1;
Element child = (Element) root.getChild(i);
while(child != null)
{
System.out.println(child.getFirstChildElement("location_name").getValue());
child = (Element) root.getChild(i++);
}
但这不起作用,它只显示第一个名字,第二个循环显示错误。
并提出疑问:getChildCount()
计算什么?
答案 0 :(得分:0)
getChild(int i)
返回第i个子节点,不一定是第i个子元素。使用getChildElements("location")
并迭代返回的列表。另一种方法是在根元素上使用XPath查询。
此外,javadoc非常具有信息性:http://www.xom.nu/apidocs/。