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>