xpath html dom4j,在dom4j中使用xPath时使用text()函数

我继承了一个使用dom4j和xPath解析xml的应用程序:

正在解析的xml类似于以下内容:

WRK_REGISTRATION

77145

WRK_REGISTRATION

77147

WRK_PROCESSING

77152

正在使用以下内容搜索单个节点:

String xPathToGridErrorNode = "//cache/content/transaction/page/widget[@name='PAGE_ID'][text()='WRK_DNA_REGISTRATION']/../widget[@name='TRANS_DETAIL_ID'][text()='77147']/../widget[@name='GRD_ERRORS_TEMP']";

org.dom4j.Element root = null;

SAXReader reader = new SAXReader();

Document document = reader.read(new BufferedInputStream(new ByteArrayInputStream(xmlToParse.getBytes())));

root = document.getRootElement();

Node gridNode = root.selectSingleNode(xPathToGridErrorNode);

其中xmlToParse是xml的String,类似于上面提供的摘录。

代码正在尝试获取具有xPath中提供的PAGE_ID和TRANS_DETAIL_ID的页面的GRD_ERROR节点。

我看到此selectSingleNode请求的间歇性(~1-2%)失败(返回节点为空),即使请求的节点位于正在搜索的xml中。

我知道在xPath中使用text()=有一些问题,并且想知道是否有更好的方法来格式化此类搜索的xPath字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值