繁体   English   中英

使用ElementTree和多个元素进行XML解析

[英]XML parsing with ElementTree and multiple elements

我需要解析一个看起来像这样的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”和“更多文本”。

但是,我无法想出一种方法来访问中间的文本(“更多文本”和“更多文本”)。

由于生成XML的软件的特性,我不能确定杂散标签,因此不能使用命令find('some-tag')。

有没有办法可以使用python解析这个XML?

谢谢

More textSome more textsome-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

因此,您需要遍历每个元素的子元素,以查看子元素是否有任何尾部。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM