gpt4 book ai didi

python - 在 python 中迭代 xml 元素时缺少一些文本

转载 作者:数据小太阳 更新时间:2023-10-29 02:15:55 25 4
gpt4 key购买 nike

我在 Mac OS X 10.6.8 上的 Python 2.7.3 中运行以下代码。

import StringIO
from lxml import etree
f = open('./foo', 'r')
doc = ""
while 1:
line = f.readline()
doc += line
if line == "":
break
tree = etree.parse(StringIO.StringIO(doc), etree.HTMLParser())
r = tree.xpath('//foo')
for i in r:
for j in i.iter():
print j.tag, j.text

并且文件 foo 包含

<foo> AAA <bar> BBB </bar> XXX </foo>

输出是

foo AAA
bar BBB

为什么我没有收到文本 XXX?我如何访问它?

谢谢

最佳答案

试试这个:

from lxml import etree

tree = etree.fromstring("<foo> AAA <bar> BBB </bar> XXX </foo>")
foos = tree.xpath('//foo')

for foo in foos:
for j in foo.iter():
print j.tag, j.text, j.tail

输出:

foo  AAA  None
bar BBB XXX

tail属性保存元素结束标记后的文本。

与其他 XML 模型(例如 DOM)相比,

tail 是 lxml 和 ElementTree 的一个特点。参见 http://infohost.nmt.edu/tcc/help/pubs/pylxml/web/etree-view.html获取更多信息。

关于python - 在 python 中迭代 xml 元素时缺少一些文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12412264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com