python-使用ElementTree和多个元素进行XML解析
作者:互联网
我需要解析一个看起来像这样的XML:
<tag>
text1 text2 text3
<some-tag/>
More text
<some-tag/>
Some more text
<some-tag/>
Even more text
</tag>
使用ElementTree的head和tail方法,可以获得“ text1 text2 text3”和“ Even more text”.
但是,我无法提出一种到达中间文本的方法(“更多文本”和“更多文本”).
由于生成XML的软件的特殊性,我无法确定杂散标签,因此无法使用命令find(‘some-tag’).
有什么方法可以使用python解析此XML?
谢谢
解决方法:
更多文本和更多文本是some-tag的结尾.请参阅以下内容:
>>> import xml.etree.cElementTree as et
>>> text = """<tag>
text1 text2 text3
<some-tag/>
More text
<some-tag/>
Some more text
<some-tag/>
Even more text
</tag>"""
>>> root = et.fromstring(text)
>>> for element in root: # leaving aside the text and tail of root for the moment
print element.tag, ': text =>', element.text or '', 'tail =>', element.tail
some-tag : text => tail => # the tail also has a newline character and white space at its beginning
More text
some-tag : text => tail =>
Some more text
some-tag : text => tail =>
Even more text
因此,您将需要遍历每个元素的子项以查看子项是否有尾巴.
标签:elementtree,xml,python 来源: https://codeday.me/bug/20191121/2054805.html