2017-02-09 40 views
0

我有一些XML數據需要在Node.js中處理。我需要剝離一個信封(SOAP),然後將信封的有效載荷/主體返回。Node.js NodeList到XML字符串

我將它作爲一個DOM文檔加入到我的代碼中,我可以很容易地找到Body內容並將其獲取到NodeList對象中。

現在我想返回NodeList作爲「XML字符串」,但我一直沒能找到任何方式做到這一點......我基本需要的是一個XML.stringify()(與JSON.stringify()),但似乎沒有任何這樣的功能。

我試圖寫一個「字符串()」自己,而是因爲有屬性和名稱空間在XML就變得非常棘手......

回答

1

這可能會幫助你。

function nodeListToString(nodeList){ 
    return [].slice.call(nodeList).reduce((str, x) =>{ 
     return str+=x.outerHTML; 
    }, ''); 
} 

的NodeList對象調用Array.prototype.slice.call()將其轉換爲一個陣列,我們就可以再使用陣列降低方法。 減少然後遍歷數組中的所有內容,將其轉換爲期望的格式,read up on it here

+0

對不起,您也可以對[] .slice.call()進行更簡短的代碼。 – flapjack17

+0

謝謝!實際上我並沒有使用「HTML」環境,而是一個普通的Node.js實現,所以我沒有「.outerHTML」可用。 – Anders

+0

對不起,我沒有做過多的發展,是節點,並不確定肥皂是什麼。當你說你有一個NodeList時,它是一個json對象的數組,像這裏顯示的那樣https://www.npmjs.com/package/soap#overriding-the-attributes-key – flapjack17