设置查询找到的XML元素的值。
int lr_xml_set_values( <List of specifications> [, <List of optional specifications> ] [, LAST]);
参数说明:
List of specifications:对于以下所需规格列表,请使用以下字符串格式:
“Specification = value”
XML:要查询的XML输入字符串
ResultParam:设置新值后包含XML数据的输出参数。如果参数不存在,则创建它。
Query:对输入字符串XML的XML查询。您可以指定元素或属性。
选择以下选项之一:
Value:要设置为XML元素的字符串值
or:
ValueParam:包含要设置为XML元素的值的参数名称
List of optional specifications:对于以下可选规格列表,请使用以下字符串格式:
“Specification = value”
SelectAll:如果为“yes”,则将处理与查询匹配的所有元素。如果“否”,则仅处理第一个匹配。默认值为“no”。请参阅多查询匹配
NotFound:请参见继续出错
LAST:表示可选规范列表结束的标记
lr_xml_set_values函数查询XML输入字符串XML以查找与查询条件匹配的值,并将Value或ValueParam设置为查询匹配的元素的值。
XML输入字符串可以是包含XML数据的文字字符串。例如:
“XML = <employee> John Smith </ employee>
或者,XML字符串可以是包含XML数据的参数。例如:
“XML = {EmployeeNameParam}”
您可以将所需的输入值作为字符串(“Value = string”)或作为包含字符串(“ValueParam = {Param}”)的参数传递。
如果有多个值要替换,则使用ValueParam。将值存储在一系列参数中,名称为:
Param_1,Param_2,Param_3,...
其中Param是值“ValueParam = Param”。 lr_xml_set_values将Query的每个连续匹配设置为系列中下一个参数的值。
当名称为ValueParam或ResultParam的参数已存在时,其值将被覆盖。使用源文档编码返回ResultParam。
有关查询的信息和示例请参阅XML查询。
示例:lr_xml_set_values
以下示例使用lr_xml_set_values更改XML字符串中两个employee元素的电话扩展。
首先,一个简单的XML字符串存储在参数XML_Input_Param中。由于我们需要匹配和替换两个值,我们准备两个新参数ExtensionParam_1和ExtensionParam_2,并将它们设置为两个新的电话分机:1111和2222。
lr_xml_set_values通过传递“ValueName = ExtensionParam”来调用,它接收ExtensionParam_1和ExtensionParam_2的值。两个雇员的当前扩展被替换为这些参数的值1111和2222.然后评估OutputParam的值,证明新的电话分机确实被替换。
有关使用lr_xml_set_values的更多示例,请参阅在XML查询的示例脚本中设置属性值。
#include“as_web.h”
char * xml_input =
“<acme_org>”
“<accounts_dept>”
“<employee>”
“<name> John Smith </ name>”
“<cubicle> 227 </ cubicle>”
“<extension> 2145 </ extension>”
“</ employee>”
“</ accounts_dept>”
“<engineering_dept>”
“<employee>”
“<name> Sue Jones </ name>”
“<extension> 2375 </ extension>”
“</ employee>”
“</ engineering_dept>”
“</ acme_org>”;
Action(){
int i,NumOfValues;
char buf [64];
lr_save_string(xml_input,“XML_Input_Param”); //将输入保存为参数
lr_save_string(“1111”,“ExtensionParam_1”);
lr_save_string(“2222”,“ExtensionParam_2”);
lr_xml_set_values(“XML = {XML_Input_Param}”,
“ResultParam = NewXmlParam”,
“ValueParam = ExtensionParam”
“SelectAll = yes”,
“Query = // extension”,
LAST);
NumOfValues = lr_xml_get_values(“XML = {NewXmlParam}”,
“ValueParam = OutputParam”,
“Query = // extension”,
“SelectAll = yes”,LAST);
for(i = 0; i <NumOfValues; i ++){/ *打印MultiParam的多个值* /
sprintf(buf,“Retrieved value%d:{OutputParam_%d}”,i + 1,i + 1);
lr_output_message(lr_eval_string(buf));
}}
return 0;
}}
输出:
Action.c(40):检索值1:1111
Action.c(40):检索值2:2222