如何基于xpath中的过滤器过滤xml节点

时间:2014-02-06 05:47:40

标签: java xml xpath jaxb

我有一个xml,我需要应用过滤器来过滤掉一些nodes。实际上,客户端通过请求xml使用XPATH表示法发送过滤条件 即。 ObjectData [VData [@DestCode = BEANR0170100497]]

当我回复客户端时,我需要过滤并仅发送上述数据。我可以使用Jaxb或任何其他简单的parser执行此操作吗?任何样本都会非常感激。

1 个答案:

答案 0 :(得分:0)

XPath内置于默认API中,例如......

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document doc = dbf.newDocumentBuilder().parse(...);

XPathFactory xf = XPathFactory.newInstance();
XPath xPath = xf.newXPath();

String query = ...
XPathExpression xExp = xPath.compile(query);
NodeList nl = (NodeList) xExp.evaluate(doc, XPathConstants.NODESET);
for (int index = 0; index < nl.getLength(); index++) {
    Node node = nl.item(index);
    System.out.println(node.getTextContent());
}