【问题标题】:Extract text from parent node and descendant nodes w/ xPath使用 xPath 从父节点和后代节点中提取文本
【发布时间】:2020-05-14 12:53:09
【问题描述】:

如果我在 XML 文件中有这些标签:

<a> Hello, I would like
   <b> to eat, please. </b>
</a>

或者这些(更复杂的):

<a> Hello, 
   <b class="A"> I would like</b>
   <b> to </b>
   <b/>
   eat, please.
</a>

,我将如何从ab 中提取文本,以便输出为:

Hello, I would like to eat, please.


我使用.//b[preceding-sibling::text()] 最接近,但这给了我来自其中一个或另一个的文本,而不是组合它们。

不知道这是否重要,但我在 python 中执行此操作,因此代码将是 element.xpath('string(.//b[preceding-sibling::text()])') 使用 lxml。

【问题讨论】:

    标签: python xml xpath extract siblings


    【解决方案1】:

    这个 XPath,

    normalize-space(/a)
    

    将返回a元素的空间标准化string value

    Hello, I would like to eat, please.
    

    根据要求。

    【讨论】:

    • 谢谢!我把 /a 换成了 . (即 normalize-space(.)) 这对我有用。
    猜你喜欢
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多