我试图找到具有OR条件的节点的第一个preceding-sibling
。
例如,我有一个节点A
,我试着得到第一个兄弟B
,但是如果没有B
,那么得到第一个兄弟SPAN
。Xpath兄弟情况(或)
我不知道该怎么办OR条件:
这是我的尝试:
A//preceding-sibling::B|SPAN[1]
A//preceding-sibling::B[1]|SPAN[1]
A//preceding-sibling::B[1]|preceding-sibling::SPAN[1]
A//(preceding-sibling::B[1]|preceding-sibling::SPAN[1]) // Xpath invalid
A//preceding-sibling::(B|SPAN)[1] // Xpath invalid
.... and many more
总之我在寻找:节点 - >preceding-sibling::NodeType1[1]
或preceding-sibling::NodeType2[1]
是有一种方法可以通过Xpath来实现,或者我必须尝试一个,如果没有结果,请尝试另一个?
编辑:
好这个问题的答案是,我认为StuartLC答案(我没有尝试)。
如果您正在寻找B
和SPAN
之间的第一个节点,那么使用har07答案。
谢谢,这正是我一直在寻找。 – Duffydake 2014-12-13 02:38:01
这可能是你在找的东西,但这不是你要求的。如果在发现B之前发现SPAN,它将返回SPAN,而你说你想要B。 – 2014-12-13 09:50:25
@Michael Kay你是对的,但这是我的错,我的问题是不正确的。这是我想要的答案。 – Duffydake 2014-12-13 11:27:11