python - 从 Python : Python equivalent of . NET XmlTextWriter 写入 XML?

标签 python xml ironpython jython

我有一些使用 XmlTextWriter 的 IronPython 代码,它允许我编写如下代码

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 编写器,而无需使用打印语句或在将其写入文件之前构建整个 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 并允许禁用 pretty-print 。

关于python - 从 Python : Python equivalent of . NET XmlTextWriter 写入 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1022429/

相关文章:

python - 在python中将IP地址转换为字节

python - SQLAlchemy - 模型 - 使用动态字段 - ActiveRecord

Python,解析html表单

python - 在 Flask-admin 中添加过滤器并在同一模型中搜索具有多个外键的模型

python - 如何确保多行字符串中的双引号

java - Spring aop :config

java - 类型不匹配 : cannot convert from ViewGroup. LayoutParams 到 LinearLayout.LayoutParams

html - Jsoup 如何输出格式正确的 XML?

ironpython - 如何从 python 访问计算值?

wpf - IronPython 或 IronRuby 是否非常适合 WPF/Silverlight 中的 MVVM 模式?