コンテンツにスキップ

XML_ADDATTRIBUTE系

関数名 引数 戻り値
XML_ADDATTRIBUTE int, string, string(, string, int, int) int
ref string, string, string(, string, int, int) int
XML_ADDATTRIBUTE_BYNAME string, string, string(, string, int, int) int

API

1. int XML_ADDATTRIBUTE xmlId, xpath, attrName(, attrValue, methodType, doSetAll)
2. int XML_ADDATTRIBUTE ref xml, xpath, attrName(, attrValue, methodType, doSetAll)
3. int XML_ADDATTRIBUTE_BYNAME xmlName, xpath, attrName(, attrValue, methodType, doSetAll)
指定したXMLに対して、xpathで選択した属性・要素ノードによって、新しい属性「attrName=attrValue」を追加します(XPathについて)。
attrValueを省略した場合、空文字列にします。doSetAll0または省略、かつ合致結果数が1以上である場合、追加は行われません。

  • methodType0または省略した場合、選択した要素ノードの属性リストの最後に属性を追加します。
  • methodType1の場合、選択した属性の前に属性を追加します。
  • methodType2の場合、選択した属性の後に属性を追加します。

成功した場合、合致結果の数を返す。失敗した場合、0を返す。

  1. xmlIdを文字列に変換した結果(TOSTR)をキーとして、保存したXmlDocumentからノードを選択します。XmlDocumentが存在していない場合、-1を返します。
  2. xmlからノードを選択し、結果をxmlに代入します。xmlは変数でなければなりません。
  3. xmlNameをキーとして、保存したXmlDocumentからノードを選択します。XmlDocumentが存在していない場合、-1を返します。

注意

実際のXmlNodeインスタンスを得ることではないため、xpathの先頭に「//」の表現を使っても意味がありません。

ヒント

命令、式中関数両方対応しています。

MAIN.ERB
@SYSTEM_TITLE
    #DIMS xml = "<xml/>"

    PRINTFORML {XML_ADDATTRIBUTE(xml, "/xml", "foo")} -> %xml%

    XML_DOCUMENT 0, xml
    PRINTFORML {XML_ADDATTRIBUTE(0, "/xml/@foo", "id", "1", 1)} -> %XML_TOSTR(0)%

    ONEINPUT
結果
1 -> <xml foo="" />
1 -> <xml id="1" foo="" />