2

我想

使用 django 创建 RSS 提要,包括自动关闭标签,如

<tag key="value"/>

当前设置

我正在使用 django 构建一个 RSS 提要SimplerXMLGenerator。这基本上只是 pythonXMLGenerator添加了一个方便的功能。

"""
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)

XMLGenerator 文档

class xml.sax.saxutils.XMLGenerator(out=None, encoding='iso-8859-1', short_empty_elements=False)

此类通过将 SAX 事件写回 XML 文档来实现ContentHandler接口

“[python] 3.2 版中的新功能:short_empty_elements 参数。”

如果short_empty_elements=True,则输出带有 attr 的标签但没有内容的标签变成 <tag attr="value"/> 了一个短的、自闭合的标签,而不是像这样单独的开始和结束标签 <tag attr="value"></tag>

但是,我使用的是 python 2.7,所以没有设置选项short_empty_elements=True(无法识别该关键字)

具体来说,我正在使用 django 的Rss201rev2Feed生成提要(它本身是SyndicationFeed的子类

handler = SimplerXMLGenerator(outfile, encoding) 当前,如果我添加一个“空”标签,则通过 ContentHandler 添加标签

handler.addQuickElement("tag", "", {"attr": "value"})

结果是

<tag attr="value"></tag>

而我想

<tag attr="value"/>

有人知道我可以设置提要以在 python 2.7 上呈现这些短的、空的、自动关闭的标签吗?

4

0 回答 0