2017-02-09 63 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