如何在提取xpath时避免使用特定标记

2024-09-30 02:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

通过使用xpath(.//div[@class=“entry content”]/div/p//text()'),我得到了所有的text1,text2,…text6。如何只取“text3”、“text4”、“text5”、“text6”??你知道吗

`<div class="entry-content">
   <div>
     <p>
     <st>text1</st>
     </p>
     <p>
     <st>text2</st>
     </p>
   </div>
   <p>"text3"</p>
   <div>
     <p>
     <st>"text4"</st>
     </p>
     <p>
     <st>"text5"</st>
     </p>
     <p>
     <st>"text6"</st>
     </p>
   </div>
</div>`

Tags: textdivcontentxpathclassstentrytext1
2条回答

根据你的澄清,“p”似乎是你想要避免的节点,特别是前两个节点。由于它们可能出现在不同的深度级别,实现它的方法之一是使用xpath表达式,它基本上是Michael Kay提供的解决方案的变体:

//div[@class="entry-content"]//descendant::p[position()>2]//text()

如果只希望节点位于第二个div中,请使用路径

.//div[@class="entry-content"]/div[2]/p//text()

如果要在除第一个以外的所有div中创建节点,请写入

.//div[@class="entry-content"]/div[position()>1]/p//text()

如果你想在其他基础上进行选择,那么解释一下你想应用什么规则。(你的问题是“避免一个特定的标签”,但你对你想避免的标签却非常不具体)。你知道吗

相关问题 更多 >

    热门问题