使用Python 3.5删除xml标记

时间:2015-11-13 21:35:31

标签: python xml document

所以我是使用python的新手。我正在尝试从xml文档中删除xml标记。尝试删除所有<tag2></tag2>标记,但保留“foo”和“bar”。建议?试图避免使用lxml

  <entry name="xml">
    <tag>
      <tag2>foo</tag2>
    </tag>
    <tag3>
      <tag2>bar</tag2>
    </tag3>
    <tag4>
      <tag2>foo</tag2>
    </tag4>
    <tag5>
      <tag2>bar</tag2>
    </tag5>
  </entry> 

编辑: 这就是我需要的输出

entry name="xml">
    <tag>
      foo
    </tag>
    <tag3>
      bar
    </tag3>
    <tag4>
      foo
    </tag4>
    <tag5>
      bar
    </tag5>
  </entry>

1 个答案:

答案 0 :(得分:3)

您可以使用xml迭代元素树。这将创建一个包含文本的所有标记的列表。

import xml.etree.ElementTree as ET

tree = ET.parse('x.xml')
root = tree.getroot()

text = []
for child in tree.iter():
    if '\n' not in child.text:
        text.append(child.text) 

David Zemens的简单声明

text = [child.text for child in tree.iter() if not child.text.strip() == '']