Xpath 读取XML节点

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();
}

 

 

 

posted @ 2019-04-28 18:29  SEC.VIP_网络安全服务  阅读(109)  评论(0编辑  收藏  举报