我在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
属性将文本保留在元素的结束标记之后。
tail
与其他XML模型(例如DOM)相比,lxml和ElementTree具有特殊性。有关更多信息,请参见http://infohost.nmt.edu/tcc/help/pubs/pylxml/web/etree-
view.html
。
null 问候
我试图使用python selenium实现一些自动化功能,但遇到了一些奇怪的行为。 html的总体布局: 现在,每个iframe实际上都有相同的内部html,网站上的代码似乎是随机选择哪个iframe得到了显示="块"。然而,我找不到任何iframe。 我尝试了一种标准方法:
创建类的两个实例 将它们存储在集合中(本例中为ArrayList) 迭代调用类上的方法的集合
问题内容: 我知道在迭代列表时不允许删除元素,但是在迭代时允许将元素添加到python列表中。这是一个例子: 我已经在我的代码中尝试过了,它似乎可以正常工作,但是我不知道是否是因为我很幸运,将来它会折断吗? 编辑:我不愿复制列表,因为“ myarr”很大,因此会太慢。另外,我需要使用“ somecond()”检查附加对象。 编辑:在某些时候“ somecond(a)”将为假,因此不能有无限循环。
下面是XSD。 下面是xml文件。 当尝试使用http://www.utilities-online.info/xsdvalidation验证它时,我得到以下错误 第2行62:org.xml.sax.SAXParseException;行号:2;列号:62;CVC-ELT.1:找不到元素“Message”的声明。
我有客户对象的列表。我想迭代列表并按1递增顺序。 我尝试了每个列表,但在这里我必须创建新列表并在其中添加值。 有没有更好的方法?我尝试使用streams,但它只是映射订单