使用java从XML检索文本和标签

时间:2015-04-08 13:00:58

标签: java xml dom

我有一个xml文件,如下所示:

<extended>
   <p>text A</p>
   <p>text B</p>
   <p>text C</p>
</extended>

使用Java我想从扩展节点中提取文本标签。所以我的预期输出是:

<p>text A</p>
<p>text B</p>
<p>text C</p>

到目前为止,这是我的代码:

String textString;
NodeList extendedNodeList = XYZ.getElementsByTagName("extended");
if(extendedNodeList !=null && extendedNodeList.getLength() == 1) {
    Node subChildNode = extendedNodeList.item(0);
    if(subChildNode.getNodeType() == Node.ELEMENT_NODE)
        textString = subChildNode.getTextContent();
}

然而,这会删除标签,留下我:

text A
text B
text C

如何留下<p>代码?任何帮助将不胜感激:)。

一个。

1 个答案:

答案 0 :(得分:0)

这将解决您的问题

NodeList extendedNodeList = XYZ.getElementsByTagName("extended");
if(extendedNodeList !=null && extendedNodeList.getLength() == 1) {
    Node extendedNode = extendedNodeList.item(0);
    if (extendedNode.hasChildNodes()) {
        NodeList childNodes = extendedNode.getChildNodes();
        for (int i = 0; i < childNodes.getLength(); i++) {
            Node pNode = childNodes.item(i);
            if(pNode.getNodeType() == Node.ELEMENT_NODE) {
                Element element = (Element)pNode;
                System.out.println("<" + element.getTagName() + ">" + element.getTextContent() + "</" + element.getTagName() + ">");
            }
        }
    }
}