ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
DOM Create XML element
|
DOM Create XML element ( elementRef ; xPath {; attrName ; attrValue} {; attrName2 ; attrValue2 ; ... ; attrNameN ; attrValueN} ) -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
elementRef | 文字 |
![]() |
ルートXML要素参照 | |||||
xPath | テキスト |
![]() |
作成するXML要素のXPathパス | |||||
attrName | 文字 |
![]() |
設定する属性 | |||||
attrValue | 文字, ブール, 倍長整数, 実数, 時間, 日付 |
![]() |
新しい属性値 | |||||
戻り値 | 文字 |
![]() |
作成された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
変更: 4D v11 SQL
ランゲージリファレンス ( 4D v20 R7)