在django,
addQuickElement(name,content,attr)
生成这样的XML
<name attr="attr">content</name>
虽然我想产生
<name attr="attr" />
最佳答案
只是不要指定contents
参数。
供参考,这是django/utils/xmlutils.py
:
"""
Utilities for XML generation/parsing.
"""
from xml.sax.saxutils import XMLGenerator
class SimplerXMLGenerator(XMLGenerator):
def addQuickElement(self, name, contents=None, attrs=None):
"Convenience method for adding an element with no children"
if attrs is None: attrs = {}
self.startElement(name, attrs)
if contents is not None:
self.characters(contents)
self.endElement(name)
您可以在此处看到不需要指定
contents
,因此可以执行x.addQuickElement(name, attrs=attrs)
。(快速查看XMLGenerator会指示它仍然会产生结束标签,而不是自动关闭标签。在Python 3.2中,已向
short_empty_elements
添加了一个参数XMLGenerator.__init__
,但是Django仍然不仅与Python 2兼容, .x。如果您担心获得短标签,请查看xml.sax.saxutils.XMLGenerator.startElement
实现。)关于python - 如何使用XMLGenerator生成空的封闭元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8455704/