2017-02-09 10 views
0

Node.jsで扱う必要があるXMLデータがいくつかあります。私はエンベロープ(SOAP)を取り除き、エンベロープのペイロード/ボディを返す必要があります。Node.js NodeList to XML文字列

私はDOM文書を自分のコードに入れて、Bodyコンテンツを簡単に見つけてNodeListオブジェクトに取り込めます。

NodeListを "XML String"として返したいのですが、これを行う方法が見つかりませんでした。基本的に必要なのはXML.stringify()ですJSON.stringify())しかし、そのような関数はないようです。

私は「()文字列化」自分自身を書くことを試みたが、属性や名前空間がXMLであるように、これはあなたを助けるかもしれない

答えて

1

...非常にトリッキーになります。 NodeListオブジェクトにArray.prototype.slice.call()を呼び出す

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

アレイに変換し、我々はこの方法を低減アレイを使用することができます。 reduceを実行して、配列内のすべてを繰り返し、目的のformtに変換します。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