如何一次一行打印 xml 节点及其子节点的内容?

问题描述 投票:0回答:0

我需要提取 xml 文件并打印节点子节点内的数据,就好像它们是表中的行一样。我不能使用特定的标签名称,因为我将解析具有不同标签名称的多个 xml 文件。

我的xml文件示例:

<students>
    <student>
        <name>John</name>
        <age>25</age>
        <sex>M</sex>        
    </student>
    <student>
        <name>Matthew</name>
        <age>23</age>
        <sex>M</sex>        
    </student>
</students>

这是我到目前为止尝试过的:

Element root = doc.getDocumentElement();
Node child = root.getFirstChild();

while (child.getNextSibling () != null) {         
    child = child.getNextSibling();

    if (child.getNodeType() == Node.ELEMENT_NODE) {
        Element eElement = (Element) child;

        NodeList subChild = eElement.getChildNodes();
        for (int i = 0; i < subChild.getLength(); i++) {
            Node subChildNode = subChild.item(i);

            if (subChildNode.getNodeType() == Node.ELEMENT_NODE) {
                Element eElement2 = (Element) subChildNode;
                System.out.print(eElement2.getTextContent() + "\t");

            }

        }

    }
}

结果将是:

John 25 M Matthew 23 M

或者如果我使用 println 而不是 print:

John
25
M
Matthew
23
M

这样怎么弄?每个学生节点一次打印一行?

John 25 M
Matthew 23 M
java xml dom
© www.soinside.com 2019 - 2024. All rights reserved.