extjs:使用xmlwriter在没有root的情况下编写一个xml

时间:2013-01-13 04:47:31

标签: extjs extjs4

使用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:String

文档根元素的名称。默认为'xmlData'。如果超过1条记录并且未指定根,则仍将使用默认文档根目录来确保创建有效的XML文档。

我的理解是,如果只有一条记录,则不会使用默认文档根目录。我对吗?但实际上,即使只有一条记录,仍会添加根元素“xmlData”。

由于

1 个答案:

答案 0 :(得分:1)

Ext.data.writer.Xml类有两个与根元素相关的配置属性:documentRootdefaultDocumentRoot。如您所述,文档说:

  

如果有多个记录并且未指定root,则仍将使用默认文档根目录来确保创建有效的XML文档。

换句话说,如果documentRoot为空,但写入了多条记录,则defaultDocumentRoot的值将用作根元素。在您的情况下,只有一条记录,但documentRoot不为空,因为其默认值为“xmlData”。

要省略单个记录的根元素,则需要将documentRoot显式设置为null:

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