【问题标题】:How to get a list of child nodes and iterate over them如何获取子节点列表并遍历它们
【发布时间】:2014-04-20 21:47:19
【问题描述】:

我的问题是如何获取父节点的子节点。我这样做的原因是我有两个具有相同标签的元素 我想显示子节点的所有元素。我是 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();


}

示例输出如下所示

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

【问题讨论】:

    标签: java eclipse xml-parsing


    【解决方案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());
            }
        }
    

    【讨论】:

    • 如何在 childNodeList 中显示元素我无法让它工作。
    • 这确实有很大帮助,但是如何从显示中删除 parentNode
    猜你喜欢
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    相关资源
    最近更新 更多