2015-06-18 41 views
0

我試圖從node.js中的給定對象序列化XML。我想序列化一個數組作爲一些具有相同名稱的元素,即應該重複相同的元素。在node.js中使用重複元素的XML編寫器

例子:

var objectToSerialize = { 
    SomeElement: { 
     Data: [3, 5, 2] 
    } 
}; 
serialize(objectToSerialize); 

要求的結果:

<RootElement> 
    <SomeElement> 
     <Data>3</Data> 
     <Data>5</Data> 
     <Data>2</Data> 
    </SomeElement> 
</root> 

我試過xml2js,但結果是:

<root> 
    <SomeElement> 
     <0>3</0> 
     <1>5</1> 
     <2>2</2> 
    </SomeElement> 
</root> 

而且我沒有找到選項,使它象那。

哪個庫可以序列化這樣的XML?

注:

  • 的問題主要是關於如何輸出,XML,我有自由定義輸入格式(例如,我可以決定,當Uint8Array傳遞序列化這樣的XML將出現而不是陣列等)。
  • 該數組僅包含數字。
  • 更加豐富的庫來編寫XML是首選,因爲我需要更多的功能,可能是特殊的(如寫入xmlns屬性)。

編輯:不象輸入,這是高優先級,在輸出XML的陣列的結構將匹配我給確切例子。

回答

0

要敬啓者,我結束了 「XML」:https://www.npmjs.com/package/xml

它只需要將輸入更改爲:

var objectToSerialize = [{ 
    SomeElement: [ 
     { Data: 3 }, 
     { Data: 5 }, 
     { Data: 2 } 
    ] 
}]; 
0

你可以試試這個libary xml-mapping

var XMLMapping = require('xml-mapping'); 
var objectToSerialize = { 
    SomeElement: { 
     Data: [3, 5, 2] 
    } 
}; 

console.log(XMLMapping.dump(objectToSerialize)); 

輸出是:

<SomeElement> 
    <Data><![CDATA[3]]></Data> 
    <Data><![CDATA[5]]></Data> 
    <Data><![CDATA[2]]></Data> 
</SomeElement> 
+0

謝謝!您的鏈接已損壞,請刪除點。它是否支持在沒有CDATA部分的情況下繪製數據? – MaMazav