XMLGenerator python sax 库:写出内联/关闭标记
XMLGenerator python sax library: write out inline / closed tag
我使用来自 xml.sax.saxutils
的 python XMLGenerator class 写出 xml。
xmlwriter = XMLGenerator(output, encoding)
xmlwriter.startDocument()
xmlwriter.startElement("foo", {})
...
xmlwriter.endElement("foo", {})
写出标签总是由 startElement
和 endElement
函数完成。对于内联标签(类似于 XHTML 的 <br />
或 <img />
),我想直接写出带结尾的标签。有没有办法用 SAX 做到这一点?
如果您使用的是 Python 3.2 或更高版本,可以将 short_empty_elements
参数传递给 XMLGenerator
(see the Python xml.sax.utils docs)。
例如:
from xml.sax.saxutils import *
import sys
output = sys.stdout
encoding = 'utf-8'
xmlwriter = XMLGenerator(output, encoding, short_empty_elements=True)
xmlwriter.startDocument()
xmlwriter.startElement(name="foo", attrs={})
xmlwriter.endElement(name="foo")
将产生输出:
<?xml version="1.0" encoding="utf-8"?>
<foo/>
我使用来自 xml.sax.saxutils
的 python XMLGenerator class 写出 xml。
xmlwriter = XMLGenerator(output, encoding)
xmlwriter.startDocument()
xmlwriter.startElement("foo", {})
...
xmlwriter.endElement("foo", {})
写出标签总是由 startElement
和 endElement
函数完成。对于内联标签(类似于 XHTML 的 <br />
或 <img />
),我想直接写出带结尾的标签。有没有办法用 SAX 做到这一点?
如果您使用的是 Python 3.2 或更高版本,可以将 short_empty_elements
参数传递给 XMLGenerator
(see the Python xml.sax.utils docs)。
例如:
from xml.sax.saxutils import *
import sys
output = sys.stdout
encoding = 'utf-8'
xmlwriter = XMLGenerator(output, encoding, short_empty_elements=True)
xmlwriter.startDocument()
xmlwriter.startElement(name="foo", attrs={})
xmlwriter.endElement(name="foo")
将产生输出:
<?xml version="1.0" encoding="utf-8"?>
<foo/>