使用getNodeValue()获取文本和内联元素

时间:2014-06-28 00:00:57

标签: java xml xpath

我正在尝试理解Java中的XPath非常棒的教程(http://viralpatel.net/blogs/java-xml-xpath-tutorial-parse-xml/)。从元素中获取文本字符串的解释非常棒。但我找不到获取文本和内联元素的方法。对于本教程中的XML,我添加了< b>内联元素:

<Employee emplid="3333" type="user">
    <firstname>Big <b>Jim</b></firstname>
    <lastname>Moriarty</lastname>
    <age>52</age>
    <email>jim@sh.com</email>
</Employee>

我使用教程中的代码:

        System.out.println("**2***********************");
        expression = "/Employees/Employee/firstname";
        System.out.println(expression);
        NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
        for (int i = 0; i < nodeList.getLength(); i++) {
            System.out.println(nodeList.item(i).getFirstChild().getNodeValue());
        }

它跳过了内联:

/Employees/Employee/firstname
Big 

我希望得到&lt; firstname&gt;的全部内容,包括标签,就像这样

/Employees/Employee/firstname
Big <b>Jim</b>

如果需要,我很乐意提供更多代码。

1 个答案:

答案 0 :(得分:0)

尝试nodeList.item(i).getFirstChild()。getTextContent()

它将节点和所有子节点作为字符串返回。