XML_REMOVENODE 系列¶
函数名 | 参数 | 返回值 |
---|---|---|
![]() XML_REMOVENODE | int , string (, int ) | int |
ref string , string (, int ) | int | |
![]() XML_REMOVENODE_BYNAME | string , string (, int ) | int |
API
1. int XML_REMOVENODE xmlId, xpath(, doSetAll)
2. int XML_REMOVENODE ref xml, xpath(, doSetAll)
3. int XML_REMOVENODE_BYNAME xmlName, xpath(, doSetAll)
XML
中删除(根节点除外)xpath
选择的节点(详见 XPath
的介绍)。当
xpath
的匹配结果存在多个时,必须将参数 doSetAll
设为 0
以外的数值才能成功删除节点。删除节点成功时,返回已删除节点的数量;失败时返回
0
。 - 从以
xmlId
的字符串转换结果(TOSTR
)为 ID 而指定的XmlDocument
中检索元素。若指定的XmlDocument
不存在,返回-1
。 - 从指定的
xml
内容中检索元素,并将新的结果重新赋值给xml
;xml
必须是变量。 - 从以
xmlName
为 ID 而指定的XmlDocument
中检索元素。若指定的XmlDocument
不存在,返回-1
。
注意
获取的 XML 不是真正的 XmlNode
节点实例,因此在 xpath
的开头使用「//
」快捷表示方法并不会生效。
提示
命令 / 行内函数两种写法均有效。
示例代码
MAIN.ERB
@SYSTEM_TITLE
#DIMS xml = "<xml><brother/><brother/><sister/></xml>"
XML_DOCUMENT 0, xml
PRINTFORML {XML_REMOVENODE(xml, "/xml/brother", 1)} -> %xml%
PRINTFORML {XML_REMOVENODE(0, "/xml/sister", 1)}
PRINTSL XML_TOSTR(0)
ONEINPUT
输出结果
2 -> <xml><sister /></xml>
1
<xml><brother /><brother /></xml>