[问题] 无法使用xpath解析的xml内容

楼主: rexhuang (BlueCancer)   2020-11-16 23:18:06
※问题类别:
javax.xml和org.w3c.dom的使用
※系统环境:
Win 10、Java 8u265、Eclipse Version 2020-09
※状况概述:
我有串xml字串,范例如下
https://jsbin.com/hiwukowaqa/edit?html
我要撷取<entry><key><value>ID</value></key><value>01</value></entry>
抓出ID的值是01
※程式码:
因为无法使用以下这种javax.xml.xpath的方式处理
XPathExpression expression =
xPath.compile("//beans//bean//property[@name='output']");
所以改用org.w3c.dom的方式处理
Element eElement = (Element) nNode;
eElement.getElementsByTagName("entry").item(0).getTextContent());
会抓出ID01,再自己substring处理
虽然可以达到目地,但想请教先进是否有更好的处理方式?
感谢
※错误讯息:
无,只是想知道是否有更好的处理方式?
※补充说明:
作者: LZN (秋)   2020-11-17 15:25:00
eElement.getElementsByTagName("entry").item(0).getChildNodes().item(1).getNodeValue() ?
作者: jej (晃奶大馬桶)   2020-11-17 19:42:00
字串吗?正则表示式是你的好朋友喔方法其实很多 如果你不限制xpath的话 jaxb也可以解决
作者: LZN (秋)   2020-11-19 11:01:00
.getChildNodes().item(1).getTextContent() <--这应该就可
作者: kentyeh (kent)   2019-02-16 13:39:00
XPathExpression expr = xpath.compile("//property[@name='output']//key[./value/text()='ID']/following-sibling::value/text()");String value = (String) expr.evaluate(doc, XPathConstants.STRING);如果排列顺序不一定则xpath语法改成"//property[@name='output']//entry[./key/value/text()='ID']/value/text()"

Links booklink

Contact Us: admin [ a t ] ucptt.com