NodejsはXML文字列をオブジェクトのインスタンスに解析します

小云云
リリース: 2018-03-16 09:04:43
オリジナル
2384 人が閲覧しました

この記事では、nodejs で XML 文字列を解析してオブジェクトに変換する方法を主に紹介します。必要な方の参考になれば幸いです。


var xmlreader = require("xmlreader");
var fs = require("fs");
var xml_string = &#39;<response id="1" shop="aldi">&#39;
      +    &#39;This is some other content&#39;
      +    &#39;<who name="james">James May</who>&#39;
      +    &#39;<who name="sam">&#39;
      +      &#39;Sam Decrock&#39;
      +      &#39;<location>Belgium</location>&#39;
      +    &#39;</who>&#39;
      +    &#39;<who name="jack">Jack Johnsen</who>&#39;
      +    &#39;<games age="6">&#39;
      +      &#39;<game>Some great game</game>&#39;
      +      &#39;<game>Some other great game</game>&#39;
      +    &#39;</games>&#39;
      +    &#39;<note>These are some notes</note>&#39;
      +  &#39;</response>&#39;;
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 を実装する方法

PHP 解析 XML 形式データ ツール クラスの例の共有

XML を解析する 4 つの方法

以上がNodejsはXML文字列をオブジェクトのインスタンスに解析しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート