Xpath使用:
示例1:锁定到目标节点会使path比较长,那么可以省略一些节点:
XPathReader reader = XPathReader.instaceFromString(xmlString);
List<Node> nodes = reader.nodeList("/Envelope/Body/InfoResponse//Test/State//DID[@type='xxx']/Software");
示例2:直接到目标节点,中间可以加些过滤条件,比如索引,@attribute等(很简单 无需多言)
XPathReader reader = XPathReader.instaceFromString(xmlString);
List<Node> nodes = reader.nodeList("/Envelope/Body/InfoResponse/Info/CurrentCategoryList[1]/Node[@specification='XXX']/Test/State/Gateway/Category[@type='XXX']/Message[@type='XXX']/Desc");
if (CollectionUtils.isNotEmpty(nodes)) {
for (Node s : nodes) {
Node sate = reader.singleNode("State[last()]", s);
String test = sate.getAttributes().getNamedItem("state").getNodeValue();
}
}
reader.close();
}