我正在尝试理解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>
如果需要,我很乐意提供更多代码。
答案 0 :(得分:0)
尝试nodeList.item(i).getFirstChild()。getTextContent()
它将节点和所有子节点作为字符串返回。