0

xmlwriter を使用してサーバーに応答を送信する場合、ルート タグは常に要求に追加されます。

アイテムを投稿したい場合:

<book>
<id></id>
<title></title>
<publisher></publisher>
</book>

実際に生成された xml は次のとおりです。

<xmlData>
<book>
<id></id>
<title></title>
<publisher></publisher>
</book>
</xmlData>

1 つのレコードのみが投稿されることを確認できます: 各リクエストに対して 1 冊の本

xmlData 要素を削除するにはどうすればよいですか? つまり book タグをルート要素にする

extjs ドキュメントには次のように書かれています。

Ext.data.writer.Xml documentRoot : 文字列

ドキュメントのルート要素の名前。デフォルトは「xmlData」です。複数のレコードがあり、ルートが指定されていない場合でも、既定のドキュメント ルートが使用され、有効な XML ドキュメントが作成されます。

私の理解では、レコードが 1 つしかない場合、デフォルトのドキュメント ルートは使用されません。私は正しいですか?しかし、実際には、レコードが 1 つしかない場合でも、ルート要素 'xmlData' が追加されます。

ありがとう

4

1 に答える 1

1

このExt.data.writer.Xmlクラスには、ルート要素に関連する 2 つの構成プロパティがあります:documentRootdefaultDocumentRoot. ご指摘のとおり、ドキュメントには次のように記載されています。

複数のレコードがあり、ルートが指定されていない場合でも、既定のドキュメント ルートが使用され、有効な XML ドキュメントが作成されます。

つまり、documentRootが null であるが、複数のレコードが書き込まれている場合、 の値がdefaultDocumentRootルート要素として使用されます。あなたの場合、レコードは1つしかdocumentRootありませんが、デフォルト値は「xmlData」であるため、nullではありません。

documentRoot単一レコードのルート要素を省略するには、明示的に nullに設定する必要があります。

new Ext.data.writer.Xml({ documentRoot: null });
于 2013-01-14T14:26:25.873 に答える