2

我需要将 XPages 扩展库 DataGrid ( <xe:djxDataGrid>) 内容作为 XML 导出。

在我的客户端 JavaScipt 中,我循环遍历所有行,获取值并使用 dojox.data.XmlStore 构建我的 XML。

问题是当我尝试保存 XML 时,它发布的次数与我添加的标签一样多,并且每个 POST 包含<?xml version="1.0"?>一个标签。

这是一个尝试创建简单 XML 文件的简单示例代码:

var xml_store = new dojox.data.XmlStore({url: "backend_save_to_file.xsp", rootItem: "tests"});
xml_store.newItem({tagName: "test1"}, "tests");
xml_store.newItem({tagName: "test2"}, "tests");
xml_store.save();

运行此 JavaScript 会导致两个 HTTP POST 到 backend_save_to_file.xsp,其中包含以下内容:

  1. <?xml version="1.0"?><test1/>
  2. <?xml version="1.0"?><test2/>

我希望一个 POST 包含:

<?xml version="1.0"?><tests><test1/><test2/></tests>

我究竟做错了什么?

编辑:我无法让它工作,所以我试图在一个字符串中构建 XML。我dojox.html.entities.encode用来转义 XML 值,但看起来这不是正确的方法。例如字符 ä 被转换为&auml;. IE 将无法识别包含&auml;XML 的文件(我在 xml 标记中尝试了不同的编码)。如果我&#228;改用 IE 会将其识别为 XML。如何在 dojo 中转义 XML?

EDIT2:我最终使用了这个简单的编码:

如何在javascript中转义xml实体?

但它不会删除 XML 中的非法字符。当然,也有代码片段可以删除它们,但如果 Dojo 中没有实用程序可以做到这一点,我会感到惊讶。

谢谢,

  • 帕努
4

0 回答 0