Posts Tagged ‘e4x’
A better e4x example
Given some XML of the following form:
<documents> <document type="salesInv" url="assets/demoData/inv_acme_20090920.pdf"> <metaData type="date" value="20/09/09"/> <metaData type="coName" value="ACME Industrial"/> <metaData type="orderNo" value="1"/> </document> <document type="correspondence" url="assets/demoData/inv_acme_20090616pdf"> <metaData type="date" value="16/06/09"/> <metaData type="from" value="David Davidson"/> <metaData type="to" value="Andrew Andrewson"/> </document> <document type="salesInv" url="assets/demoData/inv_acme_20090820pdf"> <metaData type="date" value="20/08/09"/> <metaData type="coName" value="ACME Industrial"/> <metaData type="orderNo" value="2"/> </document> <document type="salesInv" url="assets/demoData/inv_acme_20090820pdf"> <metaData type="date" value="20/08/09"/> <metaData type="coName" value="Botheringtons"/> <metaData type="orderNo" value="3"/> </document> </documents>
… and using a ‘SearchCriterionVO’ of the following form:
public class SearchCriterionVO { public var fieldId:String; public var value:String; }
… a series of search criteria can be used to filter the XML via:
var filteredDocs:XMLList = documents; for each (var criterion:SearchCriterionVO in searchDetails.criteria) { if (criterion.value.length > 0) { filteredDocs = filteredDocs.(child('metaData').(@type==criterion.fieldId && @value==criterion.value).length() > 0); } }