获取节点和子节点的文本除外

时间:2016-07-01 12:36:29

标签: python xpath

我想要做的是从一个节点获取所有文本,它是孩子但不包括其中一个孩子。

所以这是带有它的HTML:

<blocquote>
  <div class='quote'>
    I don't want to get that.
  </div>

Some text I want to <i> get </i>.

  <div>
    I want to get this.
  </div>
</blockquote>

我已经尝试过:

xpath("//blocquote/text()") 但它只需要Some text I want to

xpath("//blocquote//text() 但它会包括I don't want to get that

等所有内容

xpath("//blocquote/*[not(div[@class='quote'])]/text() 但不会Some text I want to

我真的不知道是否有解决方案。

谢谢,

2 个答案:

答案 0 :(得分:1)

你可以用例如//blocquote//text()[not(parent::div[@class = 'quote'])]

答案 1 :(得分:0)

使用后代或自我轴:

//blocquote/descendant-or-self::*[not(@class='quote')]/text()