首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python (xml.etree)不读取XML文本

Python (xml.etree)不读取XML文本
EN

Stack Overflow用户
提问于 2015-01-11 22:44:22
回答 1查看 161关注 0票数 0

我以前没有使用过XML,但是在从以下XML中获取文本时遇到了困难:

代码语言:javascript
复制
<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吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-11 22:55:36

这是因为文本本身并不是任何节点的一部分。它是标记前面的属性尾部的文本,您可以使用缩短节点访问它,请参见以下内容:

代码语言:javascript
复制
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

结果:

代码语言:javascript
复制
  ūmi 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27892946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档