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: ノードのInnerText2: ノードの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