2013-01-13 53 views
0

寫沒有根的XML,根標籤將始終被添加到請求:ExtJS的:使用的XmlWriter發送到服務器的響應時使用的XmlWriter

如果我要發佈一個項目:

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

實際生成的XML是:

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

我可以確保只有一個記錄將被公佈:一本書的每個請求

我該如何刪除xmlData元素?也就是說,使書標籤是根元素

ExtJS的文件說:

Ext.data.writer.Xml 的DocumentRoot:字符串

文檔的根元素的名稱。默認爲'xmlData'。如果有多於一條記錄,並且未指定根目錄,則仍然會使用默認文檔根目錄來確保創建有效的XML文檔。

我的理解是,如果只有一條記錄,則默認文檔根目錄將不會被使用。我對嗎?但實際上,即使只有一條記錄,根元素'xmlData'仍然被添加。

由於

回答

1

Ext.data.writer.Xml類具有與根元素兩個配置屬性:documentRootdefaultDocumentRoot。如您所述,文檔中提到:

如果超過1條記錄且未指定根目錄,則將仍然使用默認文檔根目錄來確保創建有效的XML文檔。

換句話說,如果documentRoot是空的,但多於一個的記錄被寫入,的defaultDocumentRoot值將被用作根元素。在你的情況下,只有一條記錄,但documentRoot不爲空,因爲它的默認值是「xmlData」。

要省略單記錄的根元素,那麼,你需要明確設置documentRoot爲null:

new Ext.data.writer.Xml({ documentRoot: null });