2017-01-05 26 views
0

XMLテンプレートをビュー内の文字列にレンダリングして、WebサービスへのSOAPリクエストを作成しようとしています。 loader.render_to_string('app/services/soap/item_update.xml', context, None)を実行すると、入力した文字列には、入力した箇所にブレークライン(\ n)が表示されます。以下は例です。Django render_to_stringはXMLテンプレートに ' n'を追加します

例XMLコード:

<name>Das</name> 
<city>Col</city> 

対応する文字列:レンダリングされた応答のタイプは、改行せずに文字列を描画する方法はあり<class 'django.utils.safestring.SafeText'>

ある

'<name>Das</name>\n <city>Col</city>' 

、それは400応答を送信するとSoap要求をするので?

+0

はい、改行です。修正が必要な間違いは何ですか? –

+0

私はそれに改行を入れてSoap要求をすると、400応答を送信します。 – Dasith

+1

あなたはXMLを持っていません。ルートタグがありません。 – Daniel

答えて

1

質問に答えるには、改行文字を置き換えることができます。

xml_as_string = loader.render_to_string('app/services/soap/item_update.xml', context, None) 
xml_as_string = xml_as_string.replace("\n", "") 

これは同様にあなたのタグの中から改行を削除します。

タグの外側に改行や空白があっても問題にならないはずです。 さらに、XMLには、エンコードタグ以外のルートノードが1つだけ存在する必要があります。セクション2.1 of the spec、という関連部分...正確に一つの要素が

あります参照してください、他の要素の内容に表示されていない一部が、根、またはドキュメント要素と呼ばれます。

+0

あなたはあなたの "解決策"が__all__改行文字を削除することを認識しています - タグ間だけでなく - あなたですか? –

+0

偉大な点、私はそれを逃した、ちょうど与えられた例に注意を払っている必要があり、より一般的な場合ではなくそのために解決している必要があります。 – joel

関連する問題