ExtJs 4 - 将 JS 对象转换为 xml

ExtJs 4 - Convert JS object to xml

本文关键字:转换 xml 对象 JS ExtJs      更新时间:2023-09-26

Im 使用 ExtJs 4.2.1。

有没有一种"简单"的方法将JS对象转换为xml?我的意思是一个简单的函数,例如:

Ext.JSON.encode(object);

将对象转换为 Json。

例如,假设以下对象:

Root:
  Child1
  Child2
  Child3

到以下 xml:

<Root>
   <Child1> some value </Child1>
   <Child2> some value </Child2>
   <Child3> some value </Child3>
</Root>

我试图在文档中搜索它,但没有找到任何这样的解决方案。

谢谢。

使用 Json 数据创建一个 XML 字符串并将该 XML 字符串转换为 XML 对象

要将字符串转换为 XML,请通过以下链接如何在JavaScript中将字符串转换为XML对象?

最终我使用了这个漂亮的脚本进行转换。

希望Sencha将在未来的版本中添加用于编码xml的内置函数。

一种简单的方法是使用中间层Java类。 许多Java库可用于将JSON转换为XML,如Jackson,eclipsemoxy

我在使用 EXT JS 4 时确实编写了一个方法,我在将 Javascript 对象转换为 XML 时遇到了同样的问题。 这个也处理数组对象。 我只考虑了我的特殊情况而不是其他情况.. 所以请随时进行任何更改..

    convertJsToXML: function (rec, rootNode) {
    var xmlString = "";
    var withoutRoot = false;
    for (var object in rec) {
        if (!isNaN(object)) {
            withoutRoot = true;
            xmlString += this.convertJsToXML(rec[object], rootNode);
        } else if (typeof rec[object] == 'object') {
            xmlString += this.convertJsToXML(rec[object], object);
        } else if (rec[object] != null && rec[object] != "") {
            xmlString += "<" + object + ">" + rec[object] + "</" + object + ">";
        }
    }
    if (!withoutRoot)
        xmlString = "<" + rootNode + ">" + xmlString + "</" + rootNode + ">";
    return xmlString;
}