在Django,如何生成空的封閉元素使用XMLGenerator?
addQuickElement(name,content,attr)
產生這樣的XML
<name attr="attr">content</name>
雖然我想生成
<name attr="attr" />
在Django,如何生成空的封閉元素使用XMLGenerator?
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)
。在Python 3.2中,參數short_empty_elements
被添加到XMLGenerator.__init__
,但是Django不僅仍然只與Python 2兼容,而且還可以在Python 3.2中添加參數short_empty_elements
,但是Django並不僅僅與Python 2兼容。.X如果你關心越來越短的標籤,看看在xml.sax.saxutils.XMLGenerator.startElement
實現)
下面是這種情況的一些一般性的建議,在讓你再次以最小的延遲移動針對性:
第1步:嘗試一些合理的東西。在這種情況下:
addQuickElement(name, None, attr)
第2步:使用幫助,例如:
>>> help(whatever.addQuickElement)
Help on function addQuickElement in module whatever:
addQuickElement(self, name, contents=None, attrs=None)
^^^^^^^^^^^^^
第3步:閱讀意想不到手冊
步驟4:問一個問題,關於這樣一個論壇一個
謝謝,其實這兩種方式都有效。 – iMom0