如何获取子节点列表并迭代它们

时间:2014-03-15 13:55:19

标签: java eclipse xml-parsing

我的问题是如何获取父节点的子节点。我这样做的原因是我有两个具有相同标签的元素 我想显示子节点的所有元素。我是XML Parsing的新手,所以我不知道那么多,我一直在使用DOM Parser。

我有以下xml文件

<Employees>
    <Employee id=12121>
        <Name> John </Name>
        <Profession> Programmer </Profession>
        <Age> 26 </Age>
    </Employee>
    <Employee id=121212>
        <Name> Jack </Name>
        <Profession> Analyst </Profession>
        <Profession> Team Lead </Profession>
        <Age/> 
    </Employee>
    <Employee id=121241>
        <Name> Emma </Name>
        <Profession> Risk Analyst </Profession>
        <Age> 29 </Age>
    </Employee>
</Employees>

我想获得每个Employee节点的子节点列表

我在java中尝试了以下代码

/*The code above simple creates a DOM Builder I havent included it in*/
NodeList nList = dc.getElementsByTagName("Employee");
for (int i=0; i<nList.getLength(); i++){
    Node nNode = nList.item(i);
    NodeList childNodeList = nNode.getChildNodes();


}

Sample输出看起来

John profession is Programmer and is aged 26
Jack profession is Analyst and  team lead
Emma profession is Risk Analyst and is aged 29

1 个答案:

答案 0 :(得分:1)

你的代码看起来不错。你怀疑什么?

试试这个,n1是NodeList

    for(int i=0;i<nl.getLength();i++){
        Node n=nl.item(i);
        if(n.getNodeType()==Node.ELEMENT_NODE){
           System.out.println(n.getNodeName()+"\t"+n.getTextContent());
        }
    }