我想
使用 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)
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 上呈现这些短的、空的、自动关闭的标签吗?