在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/

10-14 03:40