保留XML标签 - Python DOM实现

时间:2011-04-27 13:50:35

标签: python xml dom

我刚刚完成python DOM API的掠过,似乎无法找到我要找的东西。

我基本上希望在遍历DOM树时保留XML标记。我的想法是打印标签名称和相应的属性,我后来想将它们转换为xml文件。

<book name="bookname" source="/home/phiri/Book/book.xml"
      xmlns:xi="http://www.w3.org/2001/XInclude">
  <chapter>
    <page>page1</page>
    <page>page2</page>
  </chapter>
  <chapter>
    <page>page1</page>
    <page>page2</page>
    <page>Page3</page>
  </chapter>
</book>

例如,使用上面的XML内容,我想要的是book.xml文件的结果。

<book name="bookname" source="/home/phiri/Book/book.xml"
      xmlns:xi="http://www.w3.org/2001/XInclude">
  <chapter></chapter>
  <chapter></chapter>
</book>

是否有一个替代的xml包我可以用来保存我在使用python提取内容时得到的结果?

1 个答案:

答案 0 :(得分:0)

获取从输入发布的输出的一种简单方法是覆盖XSLT identity transform。看起来您想要消除所有文本节点和所有具有两个以上祖先的元素,因此您只需添加空模板:

<xsl:template match="text()"/>

<xsl:template match="*[count(ancestor::*) &gt; 2]"/>

通常,在Python中使用XSLT的最佳方法是使用libxml2模块。除非您需要纯Python解决方案,否则您不会使用XSLT,因为没有人构建纯Python XSLT处理器。