Example of extracting XML parsed data elements using the Assign node
To extract parsed XML data elements, you must have a basic understanding of the E4X scripting language. Reference sources for E4X are available through the Internet.
This is an example of extracting XML data:
<purchaseOrder>
<order>
<item>Item 1</name>
<price>$5.95</price>
<description>Description of Item 1</description>
<quantity>100</calories>
</order>
<order>
<item>Item 2</name>
<price>$7.95</price>
<description>Description of Item 2</description>
<quantity>200</calories>
</order>
</purchaseOrder>
To access XML data, create an XML list:
xmlElements = new XML(XML7500_outputData);
After creating the list, you can now extract any data from the list.
- To get the price of Item 2, you must use a dot operator to drill down inside the XML list.
var var1 = xmlElements.order[1].price;var1 output = $7.95
- To get the price of Item 1:
var var2 = xmlElements.order[0].price;var2 output = $5.95
- To get the quantity of Item 2:
var var3 = xmlElements.order[1].quantity;var3 output = 200
You can iterate through a list using a looping statement:
xmlElements = new XML(XML7500_outputData);
var getOrder = xmlElements.order;
for(var i=0; i<getOrder.length(); i++){
var3 += xmlElements.order.item[i];
var4 += xmlElements.order.price[i];
}
var3 output = Item1Item2
var4 output = $5.95$7.95
In some cases, XML data has namespace defined to it. Here is an example if an XML data has myNS namespace:
< myNS : order>
< myNS : item>Item 1</ myNS : item>
< myNS :price>$5.95</ myNS :price>
< myNS :description>Description of Item 1</ myNS :description>
< myNS :quantity>100</ myNS :quantity>
</ myNS :order>
< myNS :order>
< myNS :item>Item 2</ myNS :item>
< myNS :price>$7.95</ myNS :price>
< myNS :description>Description of Item 2</ myNS :description>
< myNS :price>200</ myNS : price>
</ myNS :food>
To access data in the XML list with namespace, you must declare the namespace in your JavaScript code.
var myNS = new Namespace(‘namespace ULR here’);
- To get the price of Item 2, you must use a dot operator to drill down inside the XML list.
var var1 = xmlElements.myNS::order[1].myNS::price;var1 output = $7.95
- To get the price of Item 1:
var var2 = xmlElements.myNS::order[0].myNS::price;var2 output = $5.95
- To get the quantity of Item 2:
var var3 = xmlElements.nyNS::order[1].myNS::quantity;var3 output = 200
Notice that the namespace and XML element are connected by the scope resolution operator, double colon. You can iterate through an XML list with namespace using a looping statement:
xmlElements = new XML(XML7500_outputData);
var myNS = new Namespace(‘namespace ULR here’);
var getOrder = xmlElements.myNS::order;
var gfLength = Order.length();
for(var i=0; i<gfLength; i++){
var3 += xmlElements.myNS::order.myNS::item[i];
var4 += xmlElements.myNS::order.myNS::price[i];
}
var4 output = Item1Item2
var5 output = $5.95$7.95