python - 我可以使用 ElementTree 获取 XML 文件的完整结构吗?

标签 python xml elementtree

假设我的 xml 如下所示:

<stuff>fee <i>italic</i> fie <b>bold</b> foe</stuff> 

如果我用 ElementTree 解析它,我可以使用 iter()访问子元素,我可以使用 itertext()访问文本元素,但我怎样才能同时访问它们?换句话说,我想遍历 <stuff>并得到:

text "fee "
element <i>
text " fie "
element <b>
text " foe"

这可能(并且很容易),还是我使用了错误的解析器?

最佳答案

您需要获取所有子元素的尾部才能获取 stuff 的所有文本:

>>> import xml.etree.ElementTree as ET
>>> root = ET.fromstring('<stuff>fee <i>italic</i> fie <b>bold</b> foe</stuff>')
>>> print('Text:', root.text)
>>> for child in root:
...     print('Element:', child.tag)
...     print('Text:', child.tail)
Text: fee 
Element: i
Text:  fie 
Element: b
Text:  foe

关于python - 我可以使用 ElementTree 获取 XML 文件的完整结构吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32514429/

相关文章:

java - 错误 :(23, 26) 不允许字符串类型(位于 'src' ,值为 'pen' )。

java - 在 Ant 脚本中查找资源引用 XML 标签

java - Solr 中的自定义电子邮件过滤器不起作用

python - 需要帮助来解析 XML 文件

python - 在 Python 3 中使用 partial 在元类中创建实例方法

python celery 没有名为 app.tasks 的模块

python - 在 keras.preprocessing.text 中使用 Tokenizer 时内存不足

未找到 Python 模块,但已安装且在搜索路径中

python - 求和所有 xml 标记值?

python - 如何在 python 中使用 xml.etree.ElementTree 解析当前节点中的所有子元素和孙元素