XML_ADDNODE系¶
関数名 | 引数 | 戻り値 |
---|---|---|
![]() XML_ADDNODE | int , string , string (, int , int ) | int |
ref string , string , string (, int , int ) | int | |
![]() XML_ADDNODE_BYNAME | string , string , string (, int , int ) | int |
API
1. int XML_ADDNODE xmlId, xpath, nodeXml(, methodType, doSetAll)
2. int XML_ADDNODE ref xml, xpath, nodeXml(, methodType, doSetAll)
3. int XML_ADDNODE_BYNAME xmlName, xpath, nodeXml(, methodType, doSetAll)
XML
に対して、xpath
で選択した要素ノードをベースにノード追加をします(XPath
について)。doSetAll
が0
または省略、かつ合致結果数が1
以上である場合、追加は行われません。 methodType
が0
または省略した場合、選択した要素ノードを親ノードとし、その子ノードリストの最後にnodeXml
を子ノードとして追加します。methodType
が1
の場合、選択した要素ノード(ルートノード以外)の前にnodeXml
を兄弟ノードとして追加します。methodType
が2
の場合、選択した要素ノード(ルートノード以外)の後にnodeXml
を兄弟ノードとして追加します。
成功した場合、合致結果の数を返す。失敗した場合、0
を返す。
xmlId
を文字列に変換した結果(TOSTR
)をキーとして、保存したXmlDocument
からノードを選択します。XmlDocument
が存在していない場合、-1
を返します。xml
からノードを選択し、結果をxml
に代入します。xml
は変数でなければなりません。xmlName
をキーとして、保存したXmlDocument
からノードを選択します。XmlDocument
が存在していない場合、-1
を返します。
注意
実際のXmlNode
インスタンスを得ることではないため、xpath
の先頭に「//
」の表現を使っても意味がありません。
ヒント
命令、式中関数両方対応しています。
例
MAIN.ERB
@SYSTEM_TITLE
#DIMS xml = "<xml/>"
PRINTFORML {XML_ADDNODE(xml, "/xml", "<child/>")} -> %xml%
XML_DOCUMENT 0, xml
PRINTFORML {XML_ADDNODE(0, "/xml/child", "<brother/>", 1)}
PRINTSL XML_TOSTR(0)
ONEINPUT
結果
1 -> <xml><child /></xml>
1
<xml><brother /><child /></xml>