lr_xml_replace()
替换XML字符串的片段。
int lr_xml_replace(<规范列表> [,<可选规范列表]],[LAST]);
参数说明:
List of specifications:对于以下所需规格列表,请使用以下字符串格式:
“Specification = value”
XML:要查询的XML输入字符串
ResultParam:替换新值后包含XML数据的输出参数的名称
查询:对输入字符串XML的XML查询。
选择以下选项之一:
XmlFragment:用作替换查询match-an元素或属性的字符串值。
要么:
XmlFragmentParam:包含要用作替换的字符串值的参数的名称
List of optional specifications:可选规格列表,对于以下可选规格列表,请使用以下字符串格式:
“Specification = value”
SelectAll:如果为“yes”,则将处理与查询匹配的所有元素。如果“否”,则仅处理第一个匹配。默认值为“no”。请参阅多查询匹配
NotFound:请参见继续出错
LAST:表示可选规范列表结束的标记
lr_xml_replace函数查询XML输入字符串XML以查找与查询条件匹配的值,并将它们替换为XmlFragment或XmlFragmentParam作为查询匹配的元素的值。您可以通过在XML查询中指定其元素名称或属性来替换元素。使用源文档编码将生成的字符串放在ResultParam中。
如果有多个值要替换,则传递“XmlFragmentParam =”规范。将值存储在一系列参数中,名称为:
Param_1,Param_2,Param_3,...
其中Param是值“XmlFragmentParam = Param”。 lr_xml_replace将Query的每个连续匹配替换为系列中下一个参数的值。有关多值查询的示例,请参阅lr_xml_set_values。
示例:lr_xml_replace
以下示例将员工的电话分机号码从2145更改为4444.它在输入字符串xml_input中搜索标签“<extension>”,并将该标签替换为包含数字4444的XML片段(“XmlFragment = <extension> 4444 </ extension>“)。结果字符串包含在ResultParam参数Result中。
有关使用lr_xml_replace的更多示例,请参阅替换和插入XML查询的示例脚本中的元素。
#include“as_web.h”
char * xml_input =
“<acme_org>”
“<employee>”
“<name> John Smith </ name>”
“<cubicle> 227 </ cubicle>”
“<extension> 2145 </ extension>”
“</ employee>”
“</ acme_org>”;
Action(){
lr_save_string(xml_input,“XML_Input_Param”);
lr_xml_replace(“XML = {XML_Input_Param}”,“ResultParam = Result”,
“Query = / acme_org / employee / extension”,
“XmlFragment = <extension> 4444 </ extension>”,LAST);
lr_output_message(lr_eval_string(“Replace after String:{Result}”)));
return 0;
}}
输出:
Action.c(20):替换后的字符串:<acme_org> <employee> <name> John Smith </ name> <cubicle> 227 </ cubicle> <extension> 4444 </ extension> </ employee> </ acme_org>