0

当使用 xmlwriter 向服务器发送响应时,根标记将始终添加到请求中:

如果我想发布一个项目:

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

实际生成的xml是:

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

我可以确保只发布一条记录:每个请求一本书

如何删除 xmlData 元素?也就是让book标签成为根元素

extjs 文件说:

Ext.data.writer.Xml documentRoot:字符串

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

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

谢谢

4

1 回答 1

1

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

如果有超过 1 条记录且未指定根,则仍将使用默认文档根来确保创建有效的 XML 文档。

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

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

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