XMLNode - スコープ対象、グローバル

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:10分
  • XMLNode API は、XML ノードから値を照会するメソッドを提供します。XMLNode は XML 文字列を含む XMLDocument2 オブジェクトから抽出されます。

    XMLNode オブジェクトのスタンドアロンのインスタンスを作成するためのコンストラクターはありません。代わりに、XMLDocument2createElement() メソッドを使用して、既存のドキュメントにノードを追加します。

    スコープ指定の XMLNode - getAttribute(文字列 attribute)

    属性の値を取得します。

    表 : 1. パラメーター
    名前 タイプ 説明
    attribute 文字列 属性の名前。
    表 : 2. 返される内容
    タイプ 説明
    文字列 属性の値。
    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('//two');
    gs.info(node.getAttribute('att'));

    出力:

    xxx

    スコープ指定の XMLNode - getAttributes()

    値を持つプロパティとしてノードの属性を含むオブジェクトを返します。

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    オブジェクト 名前と値のペア (名前が属性、値はその属性の値) が含まれます。

    スコープ指定の XMLNode - getChildNodeIterator()

    子ノードのリストの確認に使用できる XMLNodeIterator オブジェクトを取得します。

    表 : 5. パラメーター
    名前 タイプ 説明
    なし
    表 : 6. 返される内容
    タイプ 説明
    XMLNodeIterator ノードの反復子のオブジェクト。
    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());

    スコープ指定の XMLNode - getFirstChild()

    ノードの最初の子ノードを取得します。

    表 : 7. パラメーター
    名前 タイプ 説明
    なし
    表 : 8. 返される内容
    タイプ 説明
    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');
    gs.info(node.getFirstChild());
    出力:
    <two att="xxx">abcd1234</two>

    スコープ指定の XMLNode - getLastChild()

    ノードの最後の子ノードを取得します。

    表 : 9. パラメーター
    名前 タイプ 説明
    なし
    表 : 10. 返される内容
    タイプ 説明
    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');
     
    gs.info(node.getLastChild());
    出力:
    <two>another</two>

    スコープ指定の XMLNode - getNodeName()

    ノードの名前を取得します。ノードの名前はノードのタイプによって決まります。ドキュメント要素ノードの名前は #document です。テキストノードの名前は #text です。要素ノードの名前は要素の名前です。

    表 : 11. パラメーター
    名前 タイプ 説明
    なし
    表 : 12. 返される内容
    タイプ 説明
    文字列 ノードの名前。
    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('//two');
    gs.info(node.getNodeName());

    出力:

    two

    スコープ指定の XMLNode - getNodeValue()

    ノードの値を取得します。ノードの値はノードのタイプによって決まります。要素ノードとドキュメント要素ノードは null を返します。

    表 : 13. パラメーター
    名前 タイプ 説明
    なし
    表 : 14. 返される内容
    タイプ 説明
    文字列 ノードの値。
    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('//two');
    gs.info(node.getNodeValue());

    出力:

    null

    スコープ指定の XMLNode - getTextContent()

    現在のノードのテキストコンテンツを取得します。ノードのテキストコンテンツは、ノードのすべての子テキストノードで構成されます。

    表 : 15. パラメーター
    名前 タイプ 説明
    なし
    表 : 16. 返される内容
    タイプ 説明
    文字列 現在のノードのテキストコンテンツ。
    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/two');
    gs.info(node.getTextContent());

    出力:

    abcd1234

    スコープ指定の XMLNode - hasAttribute(文字列 attribute)

    ノードが指定された属性を持っているかどうかを判断します。

    表 : 17. パラメーター
    名前 タイプ 説明
    attribute 文字列 確認する属性の名前。
    表 : 18. 返される内容
    タイプ 説明
    ブーリアン ノードがその属性を持つ場合は 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('//two');
    gs.info(node.hasAttribute('att'));

    出力:

    true

    スコープ付き XMLNode - isCDATANode()

    CDATA ノードを別個のノードとして保持するかどうかを示します。

    スコープ付き XMLDocument2 - setEnableCDATAReporting(ブール enable) メソッドを使用して、CDATA ノードが保持され、テキストとして処理されないようにします。

    表 : 19. パラメーター
    名前 タイプ 説明
    なし
    表 : 20. 返される内容
    タイプ 説明
    ブール クエリされたノードが CDATA かプレーンテキストかを示すフラグ。
    有効な値:
    • true:照会されたノードはCDATAです。
    • false:クエリされたノードはプレーンテキストです。

    次の例は、 スコープ付き XMLDocument2 - setEnableCDATAReporting(ブール enable) を使用して CDATA レポートを有効にして XML 文字列を解析する方法を示しています。このコードでは 、isCDATANode() を使用して、XML 文字列で照会された最初のノードが CDATA ノードであることを示しています。

    var xmlString = "<test>" +
      "  <one>" +
      "    <two att=\"xxx\">abcd1234</two>" +
      "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>"+
      "    <four><![CDATA[another]]>element</four>" +
      "  </one>" +
      "  <number>1234</number>" +
      "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.setEnableCDATAReporting(true); // Enables CDATA reporting
    xmlDoc.parseXML(xmlString);
    var content = xmlDoc.getFirstNode('/test/one/four');
    gs.info(content.getFirstChild().isCDATANode());

    出力:

    true

    スコープ指定の XMLNode - toString()

    現在のノードの文字列値を返します。

    表 : 21. パラメーター
    名前 タイプ 説明
    なし
    表 : 22. 返される内容
    タイプ 説明
    文字列 現在のノードの文字列値。
    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');
    gs.info(node.toString());
    出力:出力に改行が追加されました。
    <one>    
    <two att="xxx">abcd1234</two>    
    <three att="yyy" boo="yah">1234abcd</three>    
    <two>another</two>  
    </one>