我有一些像这样的HTML:
<div> Make </div>
我希望根据节点内容包含文本“Make”的事实来匹配它。
换句话说“Make”是div
节点内容的子字符串,我希望使用XPath在此节点上进行匹配。
答案 0 :(得分:3)
显而易见的解决方案是
//div[contains(., 'Make')]
但是这会在其内容中的任何地方找到包含字符串“Make”的所有div,因此它不仅会找到您在问题中给出的示例,而且还会找到该示例中的任何祖先div,或者其中的任何div子串深埋在后代元素中。
如果您只想在div中直接直接的情况下没有其他干预元素,那么您必须使用稍微复杂的
//div[text()[contains(., 'Make')]]
这与
略有不同//div[contains(text(), 'Make')]
只能在div的第一个文本节点子节点中查找,因此会找到<div>Make<br/>Break</div>
但不 <div>Break<br/>Make</div>
如果您想允许除 div之外的其他元素,请尝试
//div[contains(., 'Make')][not(.//div[contains(., 'Make'])]
答案 1 :(得分:1)
似乎这就是您要找的内容://div[contains(text(),'Make')]
如果这不起作用,您可以尝试://div[contains(.,'Make')]
。这将找到所有div,其中包含任何属性中的“Make”。
答案 2 :(得分:1)
要在文档中的任何位置找到该节点,您需要:
//div[contains(text(), "Make")]