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>