使用 Python 去除 XML 节点之间的空格

Atl*_*s1j 3 python xml xslt

有没有一种简单的方法可以在 Python 中完成与 xsl 相同的事情:

<xsl:strip-space elements="*"/>
Run Code Online (Sandbox Code Playgroud)

例如在下面的例子中

for event, elem in ElementTree.iterparse("/tmp/example.xml"):
    if elem.tag == "example":
        print ElementTree.tostring(elem)
Run Code Online (Sandbox Code Playgroud)

当示例节点被打印出来时,示例节点的子节点之间的输入文件中的所有空格和换行符都会被删除吗?

Ale*_*lli 5

我相信您需要显式操作子树以剥离每个文本和尾部:

from xml.etree import ElementTree

for event, elem in ElementTree.iterparse("/tmp/example.xml"):
    if elem.tag == "example":
        subiter = ElementTree.ElementTree(elem).getiterator()
        for x in subiter:
          if x.text: x.text = x.text.strip()
          if x.tail: x.tail = x.tail.strip()
        print ElementTree.tostring(elem)
Run Code Online (Sandbox Code Playgroud)