Skip to main content
 首页 » 编程设计

python之有子节点时如何获取XML节点的文本值

2025年05月04日6hnrainll

我有这样的场景:

<fetch> 
   <xyz:match selector="ph-%"/> 
   tools.build.compiler 
</fetch> 

现在是 XML 节点 <fetch>具有子节点和文本值。 我想提取 <fetch> 的文本值节点。 我正在使用 python 和 Lxml 来解析 XML。 我使用了 LXML 的 element.text但我得到的文本值为 None . 谁能告诉我我在做什么错误?

请您参考如下方法:

您需要 child 的 tail 成员。

def get_text(node): 
    text = [node.text] + [child.tail for child in node] 
    return ''.join(x for x in text if x is not None) 

您使用的模式有点奇怪。 LXML 旨在使用更传统的方式将数据编码为 XML,尽管它支持一般的 XML 解析,但除非您的模式简单明了,否则 .tail 的用法总是有点奇怪。