---
sourceDocument: オーストラリア API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/api-reference

 Release :

    - australia

ft:locale :

    - ja-JP

ft:publication_title :

    - オーストラリア API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

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

# XMLDocument2 - スコープ対象、グローバル {#ariaid-title1}

* リリースバージョン: Australia
* 
* 更新日 2026年03月12日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：18分

XMLDocument2 API は、XML 文字列から XML データを解析および抽出するための JavaScript オブジェクトラッパーです。

この JavaScript クラスを使用して、XML 文字列 (通常は Web サービスの呼び出しからの戻り値) からオブジェクト、または ECC キューの XML ペイロードを作成します。JavaScript ビジネスルールで XMLDocument2 オブジェクトを使用すると、XML 要素と属性から直接値をクエリできます。

XML 文字列にはツリー構造があり、その構造の各部分はノードと呼ばれます。XMLDocument2 オブジェクトは、要素とドキュメント要素の 2 つのノードタイプを処理します。要素ノードは、名前を持ち、場合によっては属性と子ノードを持つノードです。ドキュメント要素ノードは、XML ツリーのルートノードです。これは、親ノードを持たない唯一のノードです。  
注:  
この API は、スコープ対象アプリケーションまたはグローバルアプリケーションで機能します。

## スコープ付き XMLDocument2:XMLDocument2() {#ariaid-title2}

XMLDocument2 オブジェクトを作成します。
{#r_ScopedXMLDocument2XMLDocument2__table_jqf_pkr_2r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 1. パラメーター]

{#r_ScopedXMLDocument2XMLDocument2__table_jqf_pkr_2r}

## スコープ付き XMLDocument2:XMLDocument2( GlideScriptableInputStream inputStream) {#ariaid-title3}

添付ファイルストリームから XMLDocument2 オブジェクトを作成します。
{#r_SXMLDoc2-XMLDocument2_GSIS__table_qjv_tmt_3x__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| inputStream | GlideScriptableInputStream | XMLDocument2 オブジェクトがカプセル化する入力ストリーム。 |
[表 : 2. パラメーター]

{#r_SXMLDoc2-XMLDocument2_GSIS__table_qjv_tmt_3x}

## スコープ付き XMLDocument2 - createElement(文字列名) {#ariaid-title4}

要素ノードを作成し、現在のノードに追加します。要素名は、パラメーターとして渡される文字列です。新しい要素にはテキストの子ノードがありません。
{#r_ScopedXMLDocument2CreateElement_String__table_plz_zr4_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | 新しい要素の名前。 |
[表 : 3. パラメーター]

{#r_ScopedXMLDocument2CreateElement_String__table_plz_zr4_1r} {#r_ScopedXMLDocument2CreateElement_String__table_efn_ffc_2r__entry__2}

| タイプ | 説明 |
|-|-|
| XMLNode | 現在の XML ノード。 |
[表 : 4. 返される内容]

{#r_ScopedXMLDocument2CreateElement_String__table_efn_ffc_2r}  

    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); 
    xmlDoc.createElement("new2"); 
     
    gs.info(xmlDoc);

出力:

    ?xml version="1.0" encoding="UTF-8"?>
    <test>  
        <one>    
            <two att="xxx">abcd1234</two>    
                <three att="yyy" boo="yah">1234abcd</three>    
            <two>another</two>  
        </one>  
        <number>1234</number>
        <new2></new2>
    </test>

## スコープ付き XMLDocument2 - createElementWithTextValue(文字列名, 文字列値) {#ariaid-title5}

テキスト子ノードを持つ要素ノードを作成し、現在のノードに追加します。
{#r_ScopedXMLDocument2CreateElementWithTextValue_String_String__table_rxl_qs4_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | 追加する要素の名前。 |
| value | 文字列 | 要素のテキスト値。 |
[表 : 5. パラメーター]

{#r_ScopedXMLDocument2CreateElementWithTextValue_String_String__table_rxl_qs4_1r} {#r_ScopedXMLDocument2CreateElementWithTextValue_String_String__table_txl_qs4_1r__entry__2}

| タイプ | 説明 |
|-|-|
| XMLNode | 現在の XML ノード。 |
[表 : 6. 返される内容]

{#r_ScopedXMLDocument2CreateElementWithTextValue_String_String__table_txl_qs4_1r}  

    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); 
    xmlDoc.createElementWithTextValue("new", "test");
    gs.info(xmlDoc);

出力:

    <?xml version="1.0" encoding="UTF-8"?>
        <test>
            <one>
                <two att="xxx">abcd1234</two>    
                <three att="yyy" boo="yah">1234abcd</three>    
                <two>another</two>  
            </one>  
            <number>1234</number>
            <new>test</new>
        </test>

## スコープ付き XMLDocument2:getDocumentElement() {#ariaid-title6}

XMLdocument2 オブジェクトのドキュメント要素ノードを取得します。ドキュメント要素ノードはルートノードです。
{#r_ScopedXMLDocument2GetDocumentElement__table_cvr_4kr_2r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 7. パラメーター]

{#r_ScopedXMLDocument2GetDocumentElement__table_cvr_4kr_2r} {#r_ScopedXMLDocument2GetDocumentElement__table_t2h_k54_1r__entry__2}

| タイプ | 説明 |
|-|-|
| XMLNode | ドキュメント要素。 |
[表 : 8. 返される内容]

{#r_ScopedXMLDocument2GetDocumentElement__table_t2h_k54_1r}  

    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);
    //returns the root node of the document tree.
    var rootNode = xmlDoc.getDocumentElement();
    gs.info(rootNode.getTextContent());

出力:

    abcd1234    1234abcd    another    1234

## スコープ付き XMLDocument2:getFirstNode(文字列 xPath) {#ariaid-title7}

指定された xPath の最初のノードを取得します。
このメソッドは、述語 xPath 式のサブセットのみをサポートします。たとえば、次のドキュメントを想定しているとします。

    <store> 
        <resources company="ABC Inc"> 
            <resources type="servers" /> 
        </resources> 
        <resources company="XYZ Inc"> 
            <resource type="bookstore"> 
                <book> 
                    <title>Windows</title> 
                    <price>10</price> 
                </book> 
                <book year="2009"> 
                    <title>Harry Potter</title> 
                    <price>50</price> 
                </book> 
                <book year="1999"> 
                    <title>Learning XML</title> 
                    <price>120</price> 
                </book> 
                <book year="2019"> 
                    <title>Learning Java</title> 
                    <price>99</price> 
                </book> 
            </resource> 
        </resources> 
    </store> 

このメソッドは、述語を含む次の xPath 式をサポートします。

    "/store/resources/resource[@type='bookstore']/book[@year='1999']", 
    "/store/resources/resource[@type='bookstore']/book[@year]", 
    "/store/resources/resource[@type='bookstore']/book[price > 100]" 

ただし、述語を使用した次の xPath 式はサポートしていません。

    "/store/resources/resource[@type='bookstore']/book[2]", 
    "/store/resources/resource[@type='bookstore']/book[last()]", 
    "/store/resources/resource[@type='bookstore']/book[position()>2]" 

これを回避するには、 `"/store/resources/resource[@type='bookstore']/book") ` などの述語なしで xPath を使用し、 getFirstNode() メソッドと [getNextNode()](https://servicenow-prod.fluidtopics.net/L9OxoQS8whWpiRBu1c5rPw#r_ScopedXMLDocument2GetNextNode_Object "指定されたノードの後のノードを取得します。") メソッドを使用してスクリプト内のノードをフィルタリングします。
{#r_ScopedXMLDocument2GetFirstNode_String__table_wg1_nq4_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| xPath | 文字列 | ノードを取得する xPath。 |
[表 : 9. パラメーター]

{#r_ScopedXMLDocument2GetFirstNode_String__table_wg1_nq4_1r} {#r_ScopedXMLDocument2GetFirstNode_String__table_yg1_nq4_1r__entry__2}

| タイプ | 説明 |
|-|-|
| XMLNode | 最初のノード。 |
[表 : 10. 返される内容]

{#r_ScopedXMLDocument2GetFirstNode_String__table_yg1_nq4_1r}  

    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 foo = xmlDoc.getFirstNode('/test/one/two');
    gs.info(foo.getTextContent());

出力:

    abcd1234

## スコープ付き XMLDocument2:getNextNode(現在のオブジェクト) {#ariaid-title8}

指定されたノードの後のノードを取得します。
{#r_ScopedXMLDocument2GetNextNode_Object__table_ysr_fr4_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 現在 | オブジェクト | 現在のノード。 |
[表 : 11. パラメーター]

{#r_ScopedXMLDocument2GetNextNode_Object__table_ysr_fr4_1r} {#r_ScopedXMLDocument2GetNextNode_Object__table_atr_fr4_1r__entry__2}

| タイプ | 説明 |
|-|-|
| XMLNode | 次のノード。 |
[表 : 12. 返される内容]

{#r_ScopedXMLDocument2GetNextNode_Object__table_atr_fr4_1r}  

    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 foo = xmlDoc. getFirstNode('/test/one/two');
    var foo2 = xmlDoc.getNextNode(foo);
    gs.info(foo.getTextContent());
    gs.info(foo2.getTextContent());

出力:

    abcd1234

    another

## スコープ付き XMLDocument2:getNode(文字列 xPath) {#ariaid-title9}

xPath で指定されたノードを取得します。
注:  
このメソッドは、xPath 式に一致するようにドキュメント全体を解析するため、小さなドキュメントでの使用を目的としています。ドキュメントが大きすぎると、メモリ不足エラーが発生する可能性があります。大きなドキュメントの場合は、ドキュメント全体を解析せずにドキュメントをストリーミングするように設計された [getFirstNode(String xPath)](https://servicenow-prod.fluidtopics.net/L9OxoQS8whWpiRBu1c5rPw#r_ScopedXMLDocument2GetFirstNode_String "指定された xPath の最初のノードを取得します。") メソッドと [getNextNode(Object current)](https://servicenow-prod.fluidtopics.net/L9OxoQS8whWpiRBu1c5rPw#r_ScopedXMLDocument2GetNextNode_Object "指定されたノードの後のノードを取得します。") メソッドを使用します。
{#r_ScopedXMLDocument2GetNode_String__table_yhv_xp4_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| xPath | 文字列 | 取得するノードの xPath。 |
[表 : 13. パラメーター]

{#r_ScopedXMLDocument2GetNode_String__table_yhv_xp4_1r} {#r_ScopedXMLDocument2GetNode_String__table_a3v_xp4_1r__entry__2}

| タイプ | 説明 |
|-|-|
| XMLNode | 現在の XML ノード。 |
[表 : 14. 返される内容]

{#r_ScopedXMLDocument2GetNode_String__table_a3v_xp4_1r}  

    /*
     * Checks if given node indeed of given tag.
     * Params:
     *  tag - String, name of tag to check
     *  node - XMLNode, node in which to check for the tag
     * Returns:
     *  true, if tag is present
     *  false, otherwise
     */
    function isNodeOfTag (node, tag) {
      try {
        if (tag == node.getNodeName()) {
          gs.info("Given node belongs to tag " + tag);
          return true;
        }
      } catch (error) {
        gs.error("Given node might not belong to tag " + tag + ". Error while checking: " + error);
        return false;
      }
    }

    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("/test/one/two"); // tag 'two' is present in this XML.
    isNodeOfTag(node, "two");

    var node = xmlDoc.getNode("/test/one/four"); // tag 'four' is not present in this XML.
    isNodeOfTag(node, "four");

出力:

    Given node belongs to tag two
    Given node might not belong to tag four. Error while checking: java.lang.NullPointerException

## スコープ付き XMLDocument2:getNodeText(文字列 xPath) {#ariaid-title10}

指定された XPath で参照されるノードからすべてのテキスト子ノードを取得します。
{#r_ScopedXMLDocument2GetNodeText_String__table_dgq_2p4_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| xPath | 文字列 | 取得するテキストの XPath。 |
[表 : 15. パラメーター]

{#r_ScopedXMLDocument2GetNodeText_String__table_dgq_2p4_1r} {#r_ScopedXMLDocument2GetNodeText_String__table_fgq_2p4_1r__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | XPath の子をテキスト化します。 |
[表 : 16. 返される内容]

{#r_ScopedXMLDocument2GetNodeText_String__table_fgq_2p4_1r}  

    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); 
    gs.info(xmlDoc.getNodeText("//two"));

出力:

    abcd1234

## スコープ付き XMLDocument2:parseXML (文字列 xmlDoc) {#ariaid-title11}

XML 文字列を解析し、XMLDocument2 オブジェクトにロードします。
{#r_ScopedXMLDocument2ParseXML_String__table_rxk_n44_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| xmlDoc | 文字列 | 解析するドキュメント。 |
[表 : 17. パラメーター]

{#r_ScopedXMLDocument2ParseXML_String__table_rxk_n44_1r} {#r_ScopedXMLDocument2ParseXML_String__table_scn_y2c_2r__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | コンテンツが解析されたかどうかを示すフラグ。 |
[表 : 18. 返される内容]

{#r_ScopedXMLDocument2ParseXML_String__table_scn_y2c_2r}  
この例では、xmlString を解析して xmlDocument2 オブジェクトにロードします。

    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 rootNode = xmlDoc.getDocumentElement();

## スコープ付き XMLDocument2:setCurrentElement(XMLNode 要素) {#ariaid-title12}

パラメーターとして渡されたノードを現在のノードにします。
{#r_ScopedXMLDocument2SetCurrentElement_XMLNode__table_rbn_wt4_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 要素 | XMLNode | 現在のノードとして設定する要素ノード。 |
[表 : 19. パラメーター]

{#r_ScopedXMLDocument2SetCurrentElement_XMLNode__table_rbn_wt4_1r} {#r_ScopedXMLDocument2SetCurrentElement_XMLNode__table_pph_y2c_2r__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 20. 返される内容]

{#r_ScopedXMLDocument2SetCurrentElement_XMLNode__table_pph_y2c_2r}  

    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);
    //returns the root node of the document tree.
    var rootNode = xmlDoc.getDocumentElement(); //returns org.w3c.dom.Element
    // sets the root node as the current element
    xmlDoc.setCurrentElement(rootNode);

## スコープ付き XMLDocument2 - setEnableCDATAReporting(ブール値の有効化) {#ariaid-title13}

解析後にノードを CDATA として扱うか、通常のテキストとして扱うかを設定します。CDATA レポートはデフォルトで非アクティブ化されています。
このメソッドは [スコープ付き XMLDocument2:parseXML (文字列 xmlDoc)](https://servicenow-prod.fluidtopics.net/L9OxoQS8whWpiRBu1c5rPw#r_ScopedXMLDocument2ParseXML_String "XML 文字列を解析し、XMLDocument2 オブジェクトにロードします。") で呼び出す必要があります。

参照: [スコープ付き XMLNode:isCDATANode()](https://servicenow-prod.fluidtopics.net/Y6WNDU4X6niBJXaoX1YNVA#SXMLN_isCDATANode "CDATA ノードを別のノードとして保持するかどうかを示します。")。
{#SXMLD_setEnableCDATAReporting_B__table_bk3_rjy_3x__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 有効化 | ブーリアン | CDATA ノードを CDATA ノードまたは通常のテキストノードのどちらとして処理するかを示すフラグ。 有効な値： * true:CDATA レポートを有効にします。 * false:解析後、CDATA ノードを通常のテキストノードとして処理し、隣接するテキストと連結します。 {#SXMLD_setEnableCDATAReporting_B__ul_fj4_svh_lzb} デフォルト値：False |
[表 : 21. パラメーター]

{#SXMLD_setEnableCDATAReporting_B__table_bk3_rjy_3x} {#SXMLD_setEnableCDATAReporting_B__table_ck3_rjy_3x__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 22. 返される内容]

{#SXMLD_setEnableCDATAReporting_B__table_ck3_rjy_3x}  
次の例は、CDATA レポートがアクティブ化された要素で CDATA がどのように解析されるかを示しています。content.getFirstChild() の結果は、テキスト値 another を保持する要素です。この要素には、CDATA 型として識別する情報が内部的に含まれています。content.getLastChild() の結果は、テキスト値要素を保持する要素です。この要素には、テキストタイプとしての情報が内部的に含まれています。

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

出力:

    another
    element

注:  
この例で CDATA レポートがアクティブ化されていない場合、子全体は次のように、CDATA をテキストとして、各行の残りのテキスト (要素) と連結します。

    anotherelement
    anotherelement

## スコープ付き XMLDocument2:setNamespaceAware(ブール対応) {#ariaid-title14}

true に設定すると、XMLDocument2 オブジェクトは XML 名前空間を持つドキュメントを処理します。
これを設定しないと、名前空間を含む XML ドキュメントが正しく列挙されず、XPath 検索が失敗します。
{#r_SXML-setNamespaceAware_B__table_rfn_p4t_3x__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 認識 | ブーリアン | true の場合、XMLDocument2 オブジェクトは XML 名前空間を持つドキュメントを処理します。 |
[表 : 23. パラメーター]

{#r_SXML-setNamespaceAware_B__table_rfn_p4t_3x} {#r_SXML-setNamespaceAware_B__table_sfn_p4t_3x__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 24. 返される内容]

{#r_SXML-setNamespaceAware_B__table_sfn_p4t_3x}

## スコープ付き XMLDocument2:toString() {#ariaid-title15}

XML を含む文字列を返します。
{#r_ScopedXMLDocument2ToString__table_ody_nkr_2r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 25. パラメーター]

{#r_ScopedXMLDocument2ToString__table_ody_nkr_2r} {#r_ScopedXMLDocument2ToString__table_lvt_x54_1r__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | XML を含む文字列。 |
[表 : 26. 返される内容]

{#r_ScopedXMLDocument2ToString__table_lvt_x54_1r}  

    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);
    gs.info(xmlDoc.toString());

出力:読みやすくするために改行が出力に追加されました。

    <?xml version="1.0" encoding="UTF-8"?>
    <test>  
    <one>    
    <two att="xxx">abcd1234</two>    
    <three att="yyy" boo="yah">1234abcd</three>    
    <two>another</two>  
    </one>  
    <number>1234</number>
    </test>


