Java xPath – 从XML提取子文档
我有一个XML文档如下:
...
我想从中提取DocumentBody元素的内容为String,原始XML文档:
使用xPath,它可以很简单:
/DocumentWrapper/DocumentBody
Unfrotunatelly,我的Java代码不想按我的意愿工作。 它返回空行而不是预期结果。 有没有机会这样做,或者我必须返回NodeList然后从中生成xml文档?
我的Java代码:
XPathFactory xPathFactoryXPathFactory.newInstance(); XPath xPath xPathFactory.newXPath(); XPathExpression xPath.compile(xPathQuery); String result = expression.evaluate(xmlDocument);
调用此方法
String result = expression.evaluate(xmlDocument);
与调用此相同
String result = (String) expression.evaluate(xmlDocument, XPathConstants.STRING);
在结果节点是元素的情况下,返回结果节点的字符数据,或者返回所有子节点的字符数据。
你应该做这样的事情:
Node result = (Node) expression.evaluate(xmlDocument, XPathConstants.NODE); TransformerFactory.newInstance().newTransformer() .transform(new DOMSource(result), new StreamResult(System.out));