nodejs解析xml文字列をオブジェクトにする方法の例

2883 ワード

本明細書の例は、nodejsが解析xml文字列を対象とする方法を説明する.皆さんに参考にしてあげます.具体的には以下の通りです.

var xmlreader = require("xmlreader");
var fs = require("fs");
var xml_string = ''
      +    'This is some other content'
      +    'James May'
      +    ''
      +      'Sam Decrock'
      +      'Belgium'
      +    ''
      +    'Jack Johnsen'
      +    ''
      +      'Some great game'
      +      'Some other great game'
      +    ''
      +    'These are some notes'
      +  '';
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]
  }
}

第二文出力:

This is some other content

出力によってこのものはどうなっているか推測できます.
1、xmlreaderはxmlをJSONオブジェクトに変換します.2、変換されたJSONオブジェクトのネスト構造は元のxmlタグネスト構造と同じです.3、xmlの中で同じレベルにあるラベルの出現回数が異なる(一回と複数回)と見て、異なる対応対象を生み出し、上記のnodeは一回、whoは三回である.4、操作属性や遍歴などの関数を提供します.
各方法の意味:
1、atributes:すべての属性を取得します.2、parent:親ノードを取得します.3、count:取得数.4、at:指定された値に下付けされたノードを取得する.5、each:遍歴、パラメータは一つの関数です.6、text:ノード内のテキストを取得し、現在のノードのテキストのみで、サブノードのテキストは含まれません.
PS:ここでxml操作に関するオンラインツールをいくつか提供します.参考にしてください.
オンラインXML/JSON相互変換ツール:http://tools.jb51.net/code/xmljson
オンラインXML/オンライン圧縮XML:http://tools.jb51.net/code/xmlformat
XMLオンライン圧縮/フォーマットツール:http://tools.jb51.net/code/xml_フォーマットcompless
XMLコードオンラインフォーマット美化ツール:http://tools.jb51.net/code/xmlcodeformat
ここで述べたように、皆さんのnodejsプログラムの設計に役に立ちます.