2011-12-10 19 views

回答

2

只是不指定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實現)

+0

謝謝,其實這兩種方式都有效。 – iMom0

1

下面是這種情況的一些一般性的建議,在讓你再次以最小的延遲移動針對性:

第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:問一個問題,關於這樣一個論壇一個

+0

手冊中沒有這樣的內容。 – iMom0

+0

@蘇延謙:對不起,我應該說「如果步驟1有效,則不需要嘗試步驟2和步驟3」。 –

+0

步驟2b:閱讀更完整的代碼。它會完全告訴你它做了什麼。 –

相關問題