2

我有这样的场景:

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

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

4

1 回答 1

1

你需要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除非您的模式简单明了,否则使用总是有点奇怪。

于 2013-04-25T04:33:05.547 回答