从Python编写XML:Python等价于.netxmltextwriter?

2024-10-01 13:33:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些IronPython代码,它使用了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)移植。有没有一个流式pythonxml编写器可以用来实现这一点,而不需要使用print语句,或者在将其写入文件之前构建一个完整的DOM树?在


Tags: 代码nameselfnonexmlfilenamesystemwriter
3条回答

我编写了一个工具来帮助从Python(codetutorial)生成XML

我从未使用过您所说的.NET实现,但听起来您将得到的最接近的实现是Python的SAX parser(特别是,XMLGenerator class一些示例代码here)。在

我编写了一个名为loxun的模块来实现这一点:http://pypi.python.org/pypi/loxun/。它可以与cpython2.5和jython2.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()

结果是:

^{pr2}$

在其他功能中,它可以在您编写代码时检测错别字的标记,使用占用内存较小的流式API,支持Unicode,并允许禁用漂亮的打印。在

相关问题 更多 >