xml - how to extract the values of the "For" attribute using E4X and Flex / Flash ActionScript -
i have xml document looks this
<someroot xmlns:ix="someurl.com"> <ns:inventorypage title="something"> <ns:inventory id="inventory"> <ns:inventoryview id="inventoryview"> <menu> <ns:gridcreateactionlink override="true" visible="false" runat="server"/> </menu> <columns> <ns:column for="incidentno" linkto="default"/> <ns:column displayas="string" for="location"/> <ns:column for="dateatimeoccur" format="d"/> <ns:column for="description"/> <ns:column for="workflow.personresponsible" displayas="string"/> <ns:column for="workflow.duedate" format="d"/> <ns:column for="dateclosed" format="d"/> <ns:column displayas="string" for="workflow.status"/> </columns> </ns:inventoryview> </ns:inventory>
my objective simple, coding adobe flex / as3 , want retrieve values of attributes in column tags , store them in array.
assuming code above in xml object called xmlobj, did following
var xmlobj:xml = new xml(thexmlabove); var somexmllist:xmllist = new xmllist(xmlobj);
this scratching head. tried using e4x retrieve values. example
trace (xmlobj.inventorypage.inventory.inventoryview.columns.column[0].(@for));
or trace (xmlobj.column[0].(@for));
trace (somexmllist:xmllist .inventorypage.inventory.inventoryview.columns.column[0].(@for));
or trace (somexmllist:xmllist .column[0].(@for));
i keep on getting empty xmllist. or null. going wrong? appreciate in proceeding. - edward
you need careful when using namespaces.
var xmlobj:xml = new xml( <ns:someroot xmlns:ns="http://www.someurl.com/ns-someroot"> <ns:inventorypage title="something"> <ns:inventory id="inventory"> <ns:inventoryview id="inventoryview"> <menu> <ns:gridcreateactionlink override="true" visible="false" runat="server"/> </menu> <columns> <ns:column for="incidentno" linkto="default"/> <ns:column displayas="string" for="location"/> <ns:column for="dateatimeoccur" format="d"/> <ns:column for="description"/> <ns:column for="workflow.personresponsible" displayas="string"/> <ns:column for="workflow.duedate" format="d"/> <ns:column for="dateclosed" format="d"/> <ns:column displayas="string" for="workflow.status"/> </columns> </ns:inventoryview> </ns:inventory> </ns:inventorypage> </ns:someroot> ); var thenamespace:namespace = xmlobj.namespace(); var columns:xmllist = xmlobj.thenamespace::inventorypage.thenamespace::inventory.thenamespace::inventoryview.columns.thenamespace::column; trace(columns.@for.length() ) var somelist:xmllist = columns.@for var arr:array = [] each( var somefor:string in somelist){ arr.push(somefor) } trace(arr)
Comments
Post a Comment