简体   繁体   English

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

[英]Retrieve text and tags from XML using java

I have an xml file as follows: 我有一个xml文件,如下所示:

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

Using Java I would like to extract the text and the tags from the extended node. 使用Java我想从扩展节点中提取文本标签。 So my expected output would be: 所以我的预期输出将是:

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

Here's my code so far: 到目前为止,这是我的代码:

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();
}

However, this strips the tags, leaving me with: 但是,这会剥离标签,给我留下:

text A
text B
text C

How to leave in the <p> tags? 如何留在<p>标记中? Any help would be greatly appreciated :). 任何帮助将不胜感激 :)。

A. 一种。

This will solve your problem 这将解决您的问题

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() + ">");
            }
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM