假设我的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"
这可能(并且容易),还是我使用了错误的解析器?
答案 0 :(得分:2)
这是你在找什么?
for e in tree.iter():
yield e
try:
yield e.text
except:
continue
答案 1 :(得分:2)
您需要获取所有子元素的尾部以获取所有内容的文本:
>>> 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