XMLNodeIterator - スコープ指定

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:2分
  • XMLNodeIterator API は、XML 文書のノードを反復処理するためのメソッドを提供します。

    XMLNodeIterator オブジェクトのスタンドアロンのインスタンスを作成するためのコンストラクターはありません。XMLNodeIterator オブジェクトを作成するには、XMLNode オブジェクトのgetChildNodeIterator() メソッドを使用します。

    XMLNodeIterator - hasNext()

    反復にさらに要素がある場合は true を返します。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    表 : 2. 返される内容
    タイプ 説明
    ブーリアン 反復にさらに要素がある場合は true。
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//one');
    var iter= node.getChildNodeIterator();
    gs.info(iter.hasNext());

    XMLNodeIterator - next()

    反復内の次の要素を取得します。XML が「かなり書式設定されている」場合、返される要素はスペースやタブに対する #text ノードになります。

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    XMLNode 反復内の次の要素。
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//one');
    var iter= node.getChildNodeIterator();
    while(iter.hasNext()) {
       var n = iter.next();
       gs.info('Node name: ' +  n.getNodeName());
       gs.info('Node value: ' +  n.getNodeValue());
    }
    出力:
    Node name: #text
    Node value:     
    Node name: two
    Node value: null
    Node name: #text
    Node value:     
    Node name: three
    Node value: null
    Node name: #text
    Node value:     
    Node name: two
    Node value: null
    Node name: #text
    Node value: