2011-12-10 16 views

答えて

2

を生成する一方で

addQuickElement(name,content,attr) 

この

<name attr="attr">content</name> 

のようなXMLを生成するだけ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_elementsXMLGenerator.__init__に添加した。これはまだかなり自己終了タグよりも、終了タグを生成することを示したが、DjangoはまだPythonの2のみに対応しません。あなたは、短いタグを得ることについて気にした場合.X、xml.sax.saxutils.XMLGenerator.startElement実装を見てみましょう)

+0

ありがとう、実際には2つの方法の両方が機能します。 – 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を読む:このようなフォーラムに質問をする。この場合one

+0

マニュアルにそのような内容はありません。 – iMom0

+0

@ SuYanqian:すみません。 「ステップ1が動作すれば、ステップ2と3を試す必要はありません」と言いました。 –

+0

ステップ2b:さらに完全なコードを読んでください。それはあなたに何をしているかを正確に伝えます。 –

関連する問題