我有一些Iron
Python代码,它使用XmlTextWriter,它允许我编写代码
self.writer = System.Xml.XmlTextWriter(filename, None)
self.writer.Formatting = Formatting.Indented
self.writer.WriteStartElement(name)
self.writer.WriteString(str(text))
self.writer.WriteEndElement()
...
self.writer.Close()
我想让我的代码可以跨Python实现(CPython,IronPython和Jython).是否有流式Python XML编写器,我可以使用它而无需使用print语句,或在将其写入文件之前构造整个DOM树?
最佳答案 我编写了一个名为loxun的模块来执行此操作:
http://pypi.python.org/pypi/loxun/.它运行CPython 2.5和Jython 2.5,但我从未尝试使用IronPython.
用法示例:
with open("...", "wb") as out:
xml = XmlWriter(out)
xml.addNamespace("xhtml", "http://www.w3.org/1999/xhtml")
xml.startTag("xhtml:html")
xml.startTag("xhtml:body")
xml.text("Hello world!")
xml.tag("xhtml:img", {"src": "smile.png", "alt": ":-)"})
xml.endTag()
xml.endTag()
xml.close()
结果如下:
<?xml version="1.0" encoding="utf-8"?>
<xhtml:html xlmns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:body>
Hello world!
<xhtml:img alt=":-)" src="smile.png" />
</xhtml:body>
</xhtml:html>
除了其他功能之外,它还可以在您编写时检测未分配的标记,使用内存占用空间小的流API,支持Unicode并允许禁用漂亮的打印.