java - 如何检索实际数据标签中的文本?

标签 java xml xpath nodelist

我的xml文件如下:

<xml>
    <group id="1">
        <dstport>8080</dstport>
        <packet id="1">
            <comp type="const">
                <actual-data><![CDATA[GET /]]></actual-data>
                <binary><![CDATA[47 45 54 20 2f ]]></binary>
            </comp>
            <comp type="var">
                <actual-data><![CDATA[host-manager/html HTTP]]></actual-data>
                <binary><![CDATA[68 6f 73 74 2d 6d 61 6e 61 67 65 72 2f 68 74 6d 6c 20 48 54 54 50 ]]></binary>
            </comp>
        </packet>
    </group>
</xml>


我想检索actual-data标记中的文本
(在这种情况下-“ host-manager / html HTTP”)

我正在尝试:

XPathExpression expr = xpath.compile("/xml
                                         /group
                                            /packet
                                               /comp
                                                  /actual-data
                                                     /text()");


但是它给出了空字符串。
是因为那个[CDATA]东西。我还不知道那是什么。是标签还是属性?

任何人都可以给查询以获取应得的数据。
(在这种情况下-“ host-manager / html HTTP”)

最佳答案

有2个结果。因此,如果您希望两个项目都返回,请执行以下操作:

XPath xpath = XPathFactory.newInstance().newXPath();
String xpathExpression = "/xml/group/packet/comp/actual-data";
InputSource inputSource = new InputSource("test.xml");
NodeList nodes = (NodeList) xpath
    .evaluate(xpathExpression, inputSource, XPathConstants.NODESET);
int j = nodes.getLength();
for (int i = 0; i < j; i++) {
  System.out.println("node:" + nodes.item(i).getTextContent());
}

关于java - 如何检索实际数据标签中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5713417/

相关文章:

xpath - 为Web解析器自动编写XPATH的工具?

asp.net - 使用 Entity Framework 在 asp.net mvc3 中的多个 xml 文档上运行 xpath 查询

java - 关于实数的推理

java - AspectJ - 方法 @around 未调用

Java EE 架构 - 在使用 JPA 2 之类的 ORM 时,是否仍然推荐使用 DAO?

Java Builder设计模式类及其Builder中的冗余字段声明

Python 元素树 : How to add SubElement at VERY specific position?

asp.net - 非常困惑如何解析带有命名空间前缀的 xml

javascript - 将 XML 内容提取到 HTML 中

Java:如何使用 Selenium 从亚马逊抓取图像?