使用 xPath 从父节点和后代节点中提取文本
Extract text from parent node and descendant nodes w/ xPath
如果我在 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>
,我该如何从 a
和 b
中提取文本,以便输出为:
Hello, I would like to eat, please.
我最接近使用 .//b[preceding-sibling::text()]
,但这给了我一个或另一个的文本,而不是组合它们。
不知道这是否重要,但我在 python 中执行此操作,因此代码将是 element.xpath('string(.//b[preceding-sibling::text()])')
使用 lxml。
这个 XPath,
normalize-space(/a)
将return a
元素的space-归一化string value,
Hello, I would like to eat, please.
根据要求。
如果我在 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>
,我该如何从 a
和 b
中提取文本,以便输出为:
Hello, I would like to eat, please.
我最接近使用 .//b[preceding-sibling::text()]
,但这给了我一个或另一个的文本,而不是组合它们。
不知道这是否重要,但我在 python 中执行此操作,因此代码将是 element.xpath('string(.//b[preceding-sibling::text()])')
使用 lxml。
这个 XPath,
normalize-space(/a)
将return a
元素的space-归一化string value,
Hello, I would like to eat, please.
根据要求。