如何在从XML读取文本时忽略标记?

时间:2014-06-19 10:59:07

标签: java xml xpath

我有一个包含嵌套标签的XML文本。结构有点复杂。所以我使用XPath查询来访问子节点,如answer中所述。但是,现在我在该节点中遇到了文本,该节点本身包含XML标记。一旦遇到另一个XML标记,此方法就会停止读取。

以下是XML文件:

<x>
    <y>
        <z>
            This is a <tag>text</tag>
        </z>
    </y>
</x>

在上面的XML中,可以通过以下方法访问<z>内的文本:

XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr= xpath.compile("/x/y/z/text()");
String text = (String) expr.evaluate(doc, XPathConstants.STRING);

但是文字的价值是“这只是”。我希望显示整个文本:这是一个文本

1 个答案:

答案 0 :(得分:1)

只需使用XPathExpression expr= xpath.compile("/x/y/z");