Xpath:基于父值的查询中的异常
我需要取所有的Xpath:基于父值的查询中的异常,xpath,parent-child,Xpath,Parent Child,我需要取所有的“//ul/li[不是(@*)][count(*)=0]”,除了那些有父项的。我尝试了“//not(div)/ul/li[not(@*)][count(*)=0]”,但不幸的是它不起作用。 有人知道吗,我该怎么处理? 提前谢谢。我想您需要: //ul[not(parent::div)]/li[not(@*|*)] 或: 当它是根元素时,两者都选择这样的ul。使用: //*[not(self::div)]/li[not(@*) and not(*)] 可以略为缩写为等效的: //
“//ul/li[不是(@*)][count(*)=0]”
,除了那些有
父项的。我尝试了“//not(div)/ul/li[not(@*)][count(*)=0]”
,但不幸的是它不起作用。
有人知道吗,我该怎么处理?
提前谢谢。我想您需要:
//ul[not(parent::div)]/li[not(@*|*)]
或:
当它是根元素时,两者都选择这样的ul
。使用:
//*[not(self::div)]/li[not(@*) and not(*)]
可以略为缩写为等效的:
//*[not(self::div)]/li[not(@*|*)]
是的,这正是我想要的。好问题,+1。有关选择所需节点的最短XPath表达式,请参见我的答案。:)不幸的是,1)它有一个打包错误-我认为这是因为缺少括号:not
/*[not(self::div)]/li[not(@*)和not(*)但是/*[not(self::div)]/li[not(@*)和not(*)]
2)经过修正后的表达式,我得到了一个不需要的表达式result@CodeJunkie当前位置谢谢你的好理解--我更正了这两个表达式,现在它们在语法上是正确的。至于得到一个不想要的结果,请您提供一个最简单的XML文档(通过编辑您的问题)来演示这一点?也许你错报了你的要求,或者错过了一个额外的要求
//*[not(self::div)]/li[not(@*|*)]