在python中迭代xml元素时遗漏了一些文本
发布时间:2020-12-20 12:20:56 所属栏目:Python 来源:网络整理
导读:我在Mac OS X 10.6.8上的 Python 2.7.3中运行以下代码. import StringIOfrom lxml import etreef = open('./foo','r')doc = ""while 1: line = f.readline() doc += line if line == "": breaktree = etree.parse(StringIO.StringIO(doc),etree.HTMLParser()
我在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
与其他XML模型(如DOM)相比,tail是lxml和ElementTree的特性.有关更多信息,请参见http://infohost.nmt.edu/tcc/help/pubs/pylxml/web/etree-view.html. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |