编程语言
首页 > 编程语言> > python-使用ElementTree和多个元素进行XML解析

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