DataFlex
DataFlex
XML NewChildBefore
Demonstrates the Chilkat.NewChildBefore method.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoXml
Variant vOrderBillingInfo
Handle hoOrderBillingInfo
Integer iIndex
Variant vXCustId
Handle hoXCustId
String sTemp1
Boolean bTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatXml)) To hoXml
If (Not(IsComObjectCreated(hoXml))) Begin
Send CreateComObject of hoXml
End
Set ComTag Of hoXml To "order"
Send ComNewChild2 To hoXml "order_billing_info|price_list" "Listino Italia"
Send ComNewChild2 To hoXml "order_billing_info|price_list_id" "1"
Send ComNewChild2 To hoXml "order_billing_info|first_name" "Francesco"
Get ComGetXml Of hoXml To sTemp1
Showln sTemp1
// We now have the following XML:
// <?xml version="1.0" encoding="utf-8"?>
// <order>
// <order_billing_info>
// <price_list>Listino Italia</price_list>
// <price_list_id>1</price_list_id>
// <first_name>Francesco</first_name>
// </order_billing_info>
// </order>
// If there is no "customer_id" element under "order_billing_info", then add it.
Get ComHasChildWithTag Of hoXml "order_billing_info|customer_id" To bTemp1
If (bTemp1 = True) Begin
Showln "customer_id already exists, nothing to do..."
Procedure_Return
End
// Add the customer_id element just before the "price_list" element.
// Get the "order_billing_info" element
Get ComFindChild Of hoXml "order_billing_info" To vOrderBillingInfo
If (IsComObject(vOrderBillingInfo)) Begin
Get Create (RefClass(cComChilkatXml)) To hoOrderBillingInfo
Set pvComObject Of hoOrderBillingInfo To vOrderBillingInfo
End
// Call NewChildBefore to add an XML element <customer_id> before <price_list>
// First get the index of the element price_list
Get ComTagIndex Of hoOrderBillingInfo "price_list" To iIndex
Showln "index = " iIndex
// Add the "customer_id" element just before specified index.
Get ComNewChildBefore Of hoOrderBillingInfo iIndex "customer_id" "1234" To vXCustId
If (IsComObject(vXCustId)) Begin
Get Create (RefClass(cComChilkatXml)) To hoXCustId
Set pvComObject Of hoXCustId To vXCustId
End
Send Destroy of hoXCustId
Send Destroy of hoOrderBillingInfo
Get ComGetXml Of hoXml To sTemp1
Showln sTemp1
// We now have:
// <?xml version="1.0" encoding="utf-8"?>
// <order>
// <order_billing_info>
// <customer_id>1234</customer_id>
// <price_list>Listino Italia</price_list>
// <price_list_id>1</price_list_id>
// <first_name>Francesco</first_name>
// </order_billing_info>
// </order>
End_Procedure