lr_xml_insert()
将新的XML片段插入XML字符串。
int lr_xml_insert(<规范列表> [,<可选规范列表] [,LAST]);
参数说明:
List of specifications:对于以下所需规格的列表,请使用以下字符串格式:
“Specification = value”
XML:要查询的XML输入字符串
ResultParam:插入新片段后包含XML数据的输出参数
Query:对输入字符串XML的XML查询。
选择以下选项之一:
XmlFragment:要插入的字符串。它可以是新元素或现有元素的属性。
or:
XmlFragmentParam:包含要插入的字符串值的参数的名称
List of optional specifications:对于以下可选规格列表,请使用以下字符串格式:
“Specification = value”
SelectAll:如果为“yes”,则将处理与查询匹配的所有元素。如果“否”,则仅处理第一个匹配。默认值为“no”。请参阅多查询匹配
位置:插入XML片段的位置。选择以下选项之一:
- before:将片段放在标签返回之前
通过查询
- after:放置标签返回后的片段
通过Query(这是默认值)
- child:将片段作为标签的子代
由查询返回
- attribute:表示元素的属性
由查询返回
NotFound:请参见继续出错
LAST:表示可选规范列表结束的标记
lr_xml_insert函数查询XML输入字符串XML以查找与查询条件匹配的值。然后,将XmlFragment或XmlFragmentParam插入查询返回的XML字符串中的位置(或位置)。
Position指定插入是在返回点之前还是之后完成。此外,子位置指定片段在查询找到的标签的结尾之前插入。例如,如果输入字符串为
<a> 53 </a>
子位置中的插入片段(“<b> ZZ </ b>”)将生成字符串:
<a> 53 <b> ZZ </ b> </a>
插入后的结果字符串将放在ResultParam中,使用源文档编码。
示例:lr_xml_insert
以下示例将“扩展”标记插入到员工记录中。它在输入字符串xml_input中搜索标签“<employee>”,并插入包含扩展信息的XML片段。 (“XmlFragment = <extension> 2145 </ extension>”)。
请注意,Position规范是子代,所以插入的字符串片段放在员工标签结束之前(在“</ employee>”)。
结果字符串包含在ResultParam参数Result中。
有关使用lr_xml_insert的更多示例,请参阅XML查询示例脚本中的“将属性插入根”和“使用参数在所有元素中插入子元素”部分。
#include“as_web.h”
char * xml_input =
“<acme_org>”
“<employee>”
“<name> John Smith </ name>”
“<cubicle> 227 </ cubicle>”
“</ employee>”
“</ acme_org>”;
Action(){
lr_save_string(xml_input,“XML_Input_Param”);
lr_xml_insert(“XML = {XML_Input_Param}”,“ResultParam = Result”,
“XmlFragment = <extension> 2145 </ extension>”,
“Query = / acme_org / employee”,
“Position = child”,LAST);
lr_output_message(lr_eval_string(“Insert after String:{Result}”)));
return 0;
}}
输出:
Action.c(15):“lr_xml_insert”成功,处理1个匹配
Action.c(20):插入后的字符串:
<acme_org> <employee> <name> John Smith </ name>
<cubicle> 227 </ cubicle> <extension> 2145 </ extension>
</ employee> </ acme_org>