在一个xpath中选择具有不同深度的不同节点

问题描述 投票:1回答:2
<div>
  <p>a</p>
  <ul>
    <li></li>
  </ul>
  <other-tags></other-tags>
<div>

我想在上面的例子中选择pli标签。

我可以使用//div/p|//div/ul/li来做到这一点,但是如果没有|可以实现相同的目标,换句话说,不重复//div。我尝试了//div/*[self::p or self::ul/li],但它选择了pul标签。

html xpath
2个回答
1
投票

这个XPath,

//*[self::p or self::li]

将选择文档中的所有pli元素。

这个XPath,

//div[@id="i1"]//*[self::p or self::li]

将选择目标p元素下的所有lidiv元素。


0
投票

你应该做的只是使用//p|//li。此外,它有助于研究before在StackOverflow上发布它的东西,因为我发现这个信息here。你为什么要在你的XPath中避免使用|

© www.soinside.com 2019 - 2024. All rights reserved.