ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v20 R7
DOM Create XML element

DOM Create XML element 


 

DOM Create XML element ( elementRef ; xPath {; attrName ; attrValue} {; attrName2 ; attrValue2 ; ... ; attrNameN ; attrValueN} ) -> 戻り値 
引数   説明
elementRef  文字 in ルートXML要素参照
xPath  テキスト in 作成するXML要素のXPathパス
attrName  文字 in 設定する属性
attrValue  文字, ブール, 倍長整数, 実数, 時間, 日付 in 新しい属性値
戻り値  文字 in 作成されたXML要素の参照

説明   

DOM Create XML element コマンドは、elementRef で参照されるXML中のxPath 引数で指定された位置に新しい要素を作成し、また必要であれば属性を追加します。

elementRef にはルートの要素参照 (例えばDOM Create XML Ref コマンドで作成された) を渡します。

xPath 引数には、XPath 記法を使用して表現された、作成するパスを渡します(詳細な情報については、XPath記法のサポート (DOM)の章を参照してください)。以下のパス式がサポートされます:

アクション
/rootノードを指定します(絶対パス)
para[1]コンテキストノードの最初のパラ子を指定します
para[last()]コンテキストノードの最後のパラ子を指定します

互換性に関する注意: v18 R3 以降、4D のXPath 実装はより幅広い式に対応しサポートするために変更されました。互換性上の理由から、以前の標準でない実装は返還されたデータベースではデフォルトでは維持されます。変換されたデータベースにおいて拡張された機能を利用するためには、互換性ページの互換性オプションの標準XPath を使用するオプションを選択してください。

xPath 引数に直接単純な項目名を渡すことができます。この場合、カレントの項目のサブ項目が作成されます (例題3参照)。

存在しないパス要素があれば、それは作成されます。パス要素が既に存在する場合、新しいノードが追加されます。

注: elementRef 引数を使用して一つまたはそれ以上のツリーの名前空間を定義していた場合(DOM Create XML Ref コマンド参照)、使用したい名前空間のあとにxPath 引数を指定する必要があります(例: “MyNameSpace:MyElement”)。

任意のattrName および attrValue 引数には、属性/属性値のペアを渡すことができます(変数、フィールドまたはリテラル値形式が可能です)。渡すペアの数に制限はありません。

attrValue 引数はテキストあるいは他の型 (ブール、整数、実数、日付または時間) です。テキスト以外の型を渡した場合、4Dは以下の原則に基づきテキストへの変換を行います:

変換された値の例
ブール"true" または "false"
整数"123456"
実数"12.34" (小数点は常に ".")
日付"2006-12-04T00:00:00Z" (RFC 3339 標準)
時間"5233" (秒数)

コマンドは作成された要素のXML参照を返します。

以下の要素を作成したいとします:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<RootElement>
   <Elem1>
      <Elem2>
         <Elem3> </Elem3>
         <Elem3> </Elem3>
      </Elem2>
   </Elem1>
</RootElement>

これを行うには以下のコードを実行します:

 C_TEXT(vRootRef;vElemRef)
 vRootRef:=DOM Create XML Ref("RootElement")
 vxPath:="/RootElement/Elem1/Elem2/Elem3[2]"
 vElemRef:=DOM Create XML element(vRootRef;vxPath)

以下の要素を作成したいとします (属性付き):

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<RootElement>
   <Elem1>
      <Elem2>
         <Elem3 Font=Verdana Size=10> </Elem3>
         <Elem3 Font=Verdana Size=8> </Elem3>
      </Elem2>
   </Elem1>
</RootElement>

これを行うには以下のコードを実行します:

 C_TEXT(vRootRef;vElemRef)
 C_TEXT($aAttrName1;$aAttrName2;$aAttrVal1;$aAttrVal2;$aAttrVal3)</p><p>$aAttrName1:="Font"
 $aAttrName2:="Size"
 $aAttrVal1:="Verdana"
 $aAttrVal2:="10"
 $aAttrVal3:="8"
 
 vRootRef:=DOM Create XML Ref("RootElement")
 vxPath:="/RootElement/Elem1/Elem2/Elem3"
 vElemRef:=DOM Create XML element(vRootRef;vxPath;$aAttrName1;$aAttrVal1;$aAttrName2;$aAttrVal2)
 vElemRef:=DOM Create XML element(vRootRef;vxPath;$aAttrName1;$aAttrVal1;$aAttrName2;$aAttrVal3)

後から要素を挿入したい場合、以下のように書くことができます:

 vxPath:="/RootElement/Elem1/Elem2/Elem3[2]"
 vElemRef:=DOM Create XML element(vRootRef;vxPath;"Font";"Arial")

その結果、以下のような構造になります:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<RootElement>
   <Elem1>
      <Elem2>
         <Elem3 Font=Verdana Size=10> </Elem3>
         <Elem3 Font=Arial> </Elem3>
         <Elem3 Font=Verdana Size=8> </Elem3>
      </Elem2>
   </Elem1>
</RootElement>

以下の構造を作成して書き出したいとします:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Root>
   <Elem1>Hello</Elem1>
</Root>

項目名を使用したシンプルなシンタックスを使用する場合、以下のように書きます:

 C_TEXT($root)
 C_TEXT($ref1)
 
 $root:=DOM Create XML Ref("Root")
 $ref1:=DOM Create XML element($root;"Elem1")
 DOM SET XML ELEMENT VALUE($ref1;"Hello")
 DOM EXPORT TO FILE($root;"mydoc.xml")
 DOM CLOSE XML($root)

コマンドが正しく実行されるとシステム変数OKに1が設定され、そうでなければ0が設定されエラーが生成されます。

エラーは以下の場合に生成されます:

  • ルート要素参照が無効の場合。
  • 作成する要素の名前が無効の場合 (例えば名前が数字で始まる場合)。



参照 

DOM Create XML element arrays
DOM Get XML element
DOM REMOVE XML ELEMENT

 
プロパティ 

プロダクト: 4D
テーマ: XML DOM
番号: 865

このコマンドはOKシステム変数を更新しますErrorシステム変数が更新されることがあります。This command can be run in preemptive processes

 
ページの目次 
 
履歴 

変更: 4D v11 SQL

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v20 R7)