XML_SET系¶
関数名 | 引数 | 戻り値 |
---|---|---|
![]() XML_SET | int , string , string (, int , int ) | int |
ref string , string , string (, int , int ) | int | |
![]() XML_SET_BYNAME | string , string , string (, int , int ) | int |
API
1. int XML_SET xmlId, xpath, value(, doSetAll, outputType)
2. int XML_SET ref xml, xpath, value(, doSetAll, outputType)
3. int XML_SET_BYNAME xmlName, xpath, value(, doSetAll, outputType)
xpath
の規則でxml
からノードを選択、合致ノードにvalue
を代入し、合致結果数を返します(XPath
について)。doSetAll
が0
または省略、かつ合致結果数が1
以上である場合、代入は行われません。失敗した場合、0
を返す。 xmlId
を文字列に変換した結果(TOSTR
)をキーとして、保存したXmlDocument
からノードを選択します。XmlDocument
が存在していない場合、-1
を返します。xml
からノードを選択し、結果をxml
に代入します。xml
は変数でなければなりません。xmlName
をキーとして、保存したXmlDocument
からノードを選択します。XmlDocument
が存在していない場合、-1
を返します。
outputType
の値によって,代入結果を決めます。
1
: ノードのInnerText
2
: ノードのInnerXml
- 他または省略: ノードの
Value
注意
実際のXmlNode
インスタンスを得ることではないため、xpath
の先頭に「//
」の表現を使っても意味がありません。
ヒント
命令、式中関数両方対応しています。
例
MAIN.ERB
@SYSTEM_TITLE
#DIMS xml = "<test><file name='A.txt'>InnerText内容A</file><a>A</a></test>"
; 直接文字列から探索
PRINTFORML 結果数:{XML_SET(xml, "/test/*", "B", 1, 1)}
PRINTSL xml
XML_DOCUMENT 0, xml
; XmlDocumentから探索
PRINTFORML 結果数:{XML_SET(0, "/test/file/@name", "X.xml")}
XML_GET 0, "/test/file/@name", 1
PRINTSL RESULTS
ONEINPUT
結果
結果数:2
<test><file name="A.txt">B</file><a>B</a></test>
結果数:1
X.xml