繁体   English   中英

XPath 用于跟随兄弟节点和自身节点?

[英]XPath for following-sibling and self node?

如代码中所示:

<body>
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div><span>6</span></div>
  <div>7</div>
  <div>8</div>
</body>

查找先前的兄弟节点和自身节点?

需要得到:

<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div><span>6</span></div>

我试着这样写:

//div[span]/self::node()[self::node() and self::node()/preceding-sibling::div]

...但它不起作用。

此 XPath,

//div[span or following-sibling::div[span]]

将 select 所有具有span子元素的div元素或在此类div元素之前的兄弟元素:

<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div><span>6</span></div>

按照要求。

替代方案,但可能效率较低:

//span[parent::div]/following::div[1]/preceding::div

Select 跟随span元素的第一个div的前面div元素。

Output:

Element='<div>1</div>'
Element='<div>2</div>'
Element='<div>3</div>'
Element='<div>4</div>'
Element='<div>5</div>'
Element='<div>
   <span>6</span>
</div>'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM