通过XOM获取儿童数量

时间:2011-04-27 08:18:43

标签: java xml xom

<?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()计算什么?

1 个答案:

答案 0 :(得分:0)

getChild(int i)返回第i个子节点,不一定是第i个子元素。使用getChildElements("location")并迭代返回的列表。另一种方法是在根元素上使用XPath查询。

此外,javadoc非常具有信息性:http://www.xom.nu/apidocs/