我有这样的场景:
<fetch>
<xyz:match selector="ph-%"/>
tools.build.compiler
</fetch>
现在XML节点<fetch>
同时具有子节点和文本值。
我想提取<fetch>
节点的文本值。
我使用python和Lxml来解析XML。
我使用了LXML的element.text
,但我得到的文字值为None
。
任何人都能说出我在做什么错误吗?
答案 0 :(得分: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
用法总是有点奇怪,除非你的架构很简单。