我以前没有使用过XML,但是在从以下XML中获取文本时遇到了困难:
<w>
<shortening>n</shortening>
ūmi
<mor type="mor">
<mw>
[extra stuff]
</mw>
<menx>rest</menx>
<menx>sleep</menx>
<gra type="gra" relation="ROOT" head="0" index="1"/>
</mor>
</w>对应于Element.text标记的w属性中没有文本ūmi,而是有None。我认为这是因为它前面有<shortening>标记。这不应该是Unicode问题,因为还有很多其他Unicode字符读得很好(这是音译的希伯来语)。
有什么简单的方法可以解决这个问题吗?这是格式错误的XML吗?
发布于 2015-01-11 22:55:36
这是因为文本本身并不是任何节点的一部分。它是标记前面的属性尾部的文本,您可以使用缩短节点访问它,请参见以下内容:
import xml.etree.ElementTree as ET
from StringIO import StringIO
s = '''<w>
<shortening>n</shortening>
ūmi
<mor type="mor">
<mw>
[extra stuff]
</mw>
<menx>rest</menx>
<menx>sleep</menx>
<gra type="gra" relation="ROOT" head="0" index="1"/>
</mor>
</w>'''
tree = ET.parse(StringIO(s))
root = tree.getroot()
for i in root.iter('shortening'):
print i.tail结果:
ūmi https://stackoverflow.com/questions/27892946
复制相似问题