私は周りを見回していますが、NodeでXMLを解析する明白な方法がわかりません。文字列またはURLを渡すことができる比較的単純なXMLオブジェクトがあると思いますが、仕様にはそのようなものは見つかりません。外部ライブラリが必要ですか?もしそうなら、あなたたちはどちらをお勧めしますか?明らかな方法でツリーをウォークできる限り(nodeType == ElementNodeであるかどうかをテストし、子をループする)、xPathは必要ありません(気にしないでください)。
29868 次
4 に答える
12
単純なXMLからJavaScriptオブジェクトへのコンバーターであるxml2jsをお勧めします。次に、結果のオブジェクトを反復処理できます。ページのコードスニペット:
var parseString = require('xml2js').parseString;
var xml = "<root>Hello xml2js!</root>"
parseString(xml, function (err, result) {
console.dir(result);
});
を使用してインストールできますnpm install xml2js
于 2013-03-13T04:09:37.420 に答える
3
ここにリストされているさまざまなXMLモジュールがあり、おそらく自分に最適なモジュールが見つかる可能性があります。私が知っている人気のあるものはsax-jsです。そのライブラリに既に精通している場合は、 libxmlバインディングもあります。
于 2013-03-13T03:20:26.910 に答える
0
Expressをbodyパーサーと一緒に使用している場合、最も簡単な方法はexpress-xml-bodyparserを使用することです。シナリオに応じて、すべてのルートまたは特定のルートのXMLを解析できます
すべてのルート:
const xmlparser = require('express-xml-bodyparser');
// .. other middleware ...
app.use(express.json());
app.use(express.urlencoded());
app.use(xmlparser());
// ... other middleware ...
app.post('/receive-xml', function(req, res, next) {
// req.body contains parsed XML as JSON
});
特定のルート:
app.post('/receive-xml', xmlparser({trim: false, explicitArray: false}), function(req, res, next) {
// req.body contains parsed XML as JSON
});
于 2019-09-08T06:53:12.537 に答える
-1
サーバー側で実行する必要があることが絶対的な要件ではない場合は、クライアントでXMLSerializerを使用して文字列に解析し、DOMParserを使用してDOMに解析できます。
XMLSerializerの例(DOMから文字列へ):
var XMLS = new XMLSerializer();
var elem = document;
var xml_str = XMLS.serializeToString(elem);
console.log(xml_str);
DOMParserの例(文字列からDOMへ):
var parser = new DOMParser();
var doc = parser.parseFromString(xml_str, "application/xml");
console.log(doc);
于 2013-03-13T03:27:43.180 に答える