【发布时间】:2015-04-28 14:13:26
【问题描述】:
标记示例:
<div class="post-content">
<p>
<moredepth>
<...>
<span class="image-container float_right">
<div class="some_element">
image1
</div>
<p>do not need this</p>
</span>
<div class="image-container float_right">
image2
</div>
<p>text1</p>
<li>text2</li>
</...>
</moredepth>
</p>
</div>
最糟糕的是“图像容器”的深度可以在任何级别。
我尝试使用的Xpath:
//div[contains(@class, 'post-content')]//*[not(contains(@class, 'image-container'))]
我应该使用什么 Xpath 才能排除“some_element”和任何深度的“image-container”的任何其他子级以及“image-container”元素本身?
本例中的输出应为:
<p>
<moredepth>
<...>
<p>text1</p>
<li>text2</li>
</...>
</moredepth>
</p>
附:是否可以使用 CSS 进行这样的选择?
【问题讨论】:
-
请编辑您的帖子并包含您期望的输出(发布此 HTML)。
-
为什么不能选择外部的
p和moredepth元素?你只想要moredepth的孩子吗? -
我需要选择 p 和更多深度。但我需要排除包含“图像容器”及其所有子元素的类
-
@MathiasMüller 再次编辑了输出标记的问题
标签: html dom xpath css-selectors