获取Pararagraph代码

时间:2015-12-03 17:08:12

标签: python-3.x xpath

我有html代码,如:

<div class="main">
    <p>The match is going well,
    <a> john </a> 
    is playing awesome </p>
</div>

我的xpath函数为//div[@class="main"]/p/text()

它只返回The match is going well, is playing awesome

但我希望结果是

  

比赛进展顺利,约翰打得很棒

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

我建议使用normalize-space()。这也将处理换行符,这在这种情况下很重要,并且不会被解析器删除。

normalize-space(//div[@class="main"]/p)

根据精彩评论进行修改:

输入中的所有节点都可以分解为以下XPath:

/div
/div/@class
/div/p
/div/p/text()[1]
/div/p/a
/div/p/a/text()
/div/p/text()[2]

如您所见,有2个文本节点是pThe match is going well,is playing awesome)的直接子节点。另一个文本节点(john)是a的子节点。

这就是原始xpath(//div[@class="main"]/p/text())返回您看到的结果的原因。