【问题标题】:python ElementTree the text of element who has a childpython ElementTree 有孩子的元素的文本
【发布时间】:2013-10-31 06:36:52
【问题描述】:

当我尝试阅读有孩子的元素的文本时,它给出了 None:

查看 xml(比如 test.xml):

<?xml version="1.0"?>
<data>
    <test><ref>MemoryRegion</ref> abcd</test>
</data>

以及想要读取'abcd'的python代码:

import xml.etree.ElementTree as ET
tree = ET.parse('test.xml')
root = tree.getroot()
print root.find("test").text

当我运行这个 python 时,它给出的是 None,而不是 abcd。

在这种情况下如何读取 abcd?

【问题讨论】:

  • 这很烦人。它看起来像 'abcd' 是 . 的文本值

标签: python xml elementtree


【解决方案1】:

使用Element.tail属性:

>>> import xml.etree.ElementTree as ET
>>> tree = ET.parse('test.xml')
>>> root = tree.getroot()
>>> print root.find(".//ref").tail
 abcd

【讨论】:

    【解决方案2】:

    ElementTree 有一个完全不同的 XML 视图,它更适合嵌套数据。 .text 是紧跟在开始标签之后的数据。 .tail 是结束标记之后的数据。所以你想要:

    print root.find('test/ref').tail
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 2012-05-11
      • 2014-05-08
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      • 2015-05-05
      相关资源
      最近更新 更多