如何修改XPath让SelectNodes同时匹配含空值子节点的Product节点
调整后的XPath语句
直接在原有polispremie_1节点的判断条件中新增空字符串匹配即可:
hoofddocument.SelectNodes("//Product[./polispremie_1[.='0,00' or .='0' or .='0.00' or .='']]")
原失败原因说明
XPath语义中不存在null的概念,自闭合空节点<polispremie_1/>的字符串取值就是空字符串'',因此之前写or .= null无法匹配到空节点。
可选兼容优化
如果需要同时匹配<polispremie_1> </polispremie_1>这类包含空白字符的空值节点,可以将空值判断替换为normalize-space(.) = '',语句如下:
hoofddocument.SelectNodes("//Product[./polispremie_1[.='0,00' or .='0' or .='0.00' or normalize-space(.)='']]")
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

