2014-11-24 40 views
2

林。ExtJs的4 - 轉換JS對象使用ExtJs的4.2.1 XML

是否有一個「簡單」的方式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> 

我試圖尋找它的文檔中,但並沒有來到像任何解決方案那。

謝謝。

+0

據我所知,沒有什麼內置ExtJS。你必須找到一個第三方腳本,或寫你自己的。 – forgivenson 2014-11-24 18:40:40

回答

0

最後我用這個nice script的轉換。

希望煎茶將新增內置功能在未來的版本編碼XML。

+0

將不會是一個很大的衝擊PERF做在瀏覽器內存轉換? – Chandru 2014-12-29 16:46:57

+0

我同意。但是我無法更改服務器代碼+我的對象不是很大以至於會影響性能。 – yanivsh 2014-12-30 17:16:23

0

一個簡單的方法來做到這一點是使用一箇中間層的Java類。適用於JSON轉換的Java庫地塊到XML像傑克遜,eclipsemoxy

+0

無法添加/更改服務器上的代碼 – yanivsh 2014-11-28 14:24:00

0

我也寫了一個方法,而使用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; 
}