从带有xPath的父节点和子节点中提取文本

问题描述 投票:1回答:1

如果我在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中执行此操作,因此代码将使用lxml element.xpath('string(.//b[preceding-sibling::text()])')

python xml xpath extract siblings
1个回答
2
投票

此XPath,

normalize-space(/a)

将返回string value元素的空间归一化的a

Hello, I would like to eat, please.

根据要求。

© www.soinside.com 2019 - 2024. All rights reserved.