この記事では、nodejs で XML 文字列を解析してオブジェクトに変換する方法を主に紹介します。必要な方の参考になれば幸いです。
var xmlreader = require("xmlreader"); var fs = require("fs"); var xml_string = '<response id="1" shop="aldi">' + 'This is some other content' + '<who name="james">James May</who>' + '<who name="sam">' + 'Sam Decrock' + '<location>Belgium</location>' + '</who>' + '<who name="jack">Jack Johnsen</who>' + '<games age="6">' + '<game>Some great game</game>' + '<game>Some other great game</game>' + '</games>' + '<note>These are some notes</note>' + '</response>'; xmlreader.read(xml_string, function(errors, response){ if(null !== errors ){ console.log(errors) return; } console.log( response.response ); console.log( response.response.text() ); });
何も新しいことはありません。出力を見てみましょう
最初の文の出力は次のとおりです:
{ attributes : [Function], parent : [Function], count : [Function], at : [Function], each : [Function], text : [Function], who : { array : [[Object], [Object], [Object]], count : [Function], at : [Function], each : [Function] }, games : { attributes : [Function], parent : [Function], count : [Function], at : [Function], each : [Function], game : { array : [Object], count : [Function], at : [Function], each : [Function] } }, note : { attributes : [Function], parent : [Function], count : [Function], at : [Function], each : [Function], text : [Function] } }
2 番目の文の出力:
This is some other content
出力に基づいて、これが何なのか推測できます。何が起こっているのでしょうか?
1. xmlreader
XML を JSON オブジェクトに変換します (この表現は正確ではありませんが、それが何であるかは誰もが知っています)。
2. 変換された JSON オブジェクトの入れ子構造は、元の XML タグの入れ子構造と同じです。
3. XML 内で特定のタグが同じレベルに出現する回数 (1 回と複数回) に応じて、上のノードは 1 回、who は 3 回生成されます。
4. 属性やトラバースなどを操作するためのいくつかの関数が提供されています。
各メソッドの意味:
1、attributes: すべての属性を取得します。
2、parent: 親ノードを取得します。
3、count: 番号を取得します。
4、at: 添字が指定された値であるノードを取得します。
5、each: トラバーサル、パラメーターは関数です。
6、text: ノード内のテキストを取得します。子ノードのテキストを除く、現在のノードのテキストのみです。
関連する推奨事項:
XML を解析して SQL ステートメントを生成するために PHP を実装する方法
以上がNodejsはXML文字列をオブジェクトのインスタンスに解析しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。