What is the recommended way of parsing an XML feed with multiple namespaces with ActionScript 3.0?

Posted by dafko on Stack Overflow See other posts from Stack Overflow or by dafko
Published on 2010-04-27T22:05:51Z Indexed on 2010/04/27 22:13 UTC
Read the original article Hit count: 236

I have seen the following methods to be used in several online examples, but haven't found any documentation on the recommended way of parsing an XML feed.

Method 1:

protected function xmlResponseHandler(event:ResultEvent):void
{
    var atom:Namespace = new Namespace("http://www.w3.org/2005/Atom");
    var microsoftData:Namespace = new Namespace("http://schemas.microsoft.com/ado/2007/08/dataservices");
    var microsoftMetadata:Namespace = new   Namespace("http://schemas.microsoft.com/ado/2007/08/dataservices/metadata");

    var ac:ArrayCollection = new ArrayCollection();
    var keyValuePairs:KeyValuePair;
    var propertyList:XMLList = (event.result as XML)..atom::entry.atom::content.microsoftMetadata::properties;

    for each (var properties:XML in propertyList)
    {
        keyValuePairs = new KeyValuePair(properties.microsoftData::FieldLocation, properties.microsoftData::Locationid);
        ac.addItem(keyValuePairs);     
    } 

    cb.dataProvider = ac;
}

Method 2:

protected function xmlResponseHandler(event:ResultEvent):void
{
    namespace atom = "http://www.w3.org/2005/Atom";
    namespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices";
    namespace m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";

    use namespace d;
    use namespace m;
    use namespace atom;

    var ac:ArrayCollection = new ArrayCollection();
    var keyValuePairs:KeyValuePair;
    var propertyList:XMLList = (event.result as XML)..entry.content.properties;

    for each (var properties:XML in propertyList)
    {
        keyValuePairs = new KeyValuePair(properties.FieldLocation, properties.Locationid);
        ac.addItem(keyValuePairs);     
    } 

    cb.dataProvider = ac;
}  

Sample XML feed:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<feed xml:base="http://www.test.com/Test/my.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
    <title type="text">Test_Locations</title>
    <id>http://www.test.com/test/my.svc/Test_Locations</id>
    <updated>2010-04-27T20:41:23Z</updated>
    <link rel="self" title="Test_Locations" href="Test_Locations" />
    <entry>
        <id>1</id>
        <title type="text"></title>
        <updated>2010-04-27T20:41:23Z</updated>
        <author>
            <name />
        </author>
        <link rel="edit" title="Test_Locations" href="http://www.test.com/id=1" />
        <category term="MySQLModel.Test_Locations" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
            <m:properties>
                <d:FieldLocation>Test Location</d:FieldLocation>
                <d:Locationid>test0129</d:Locationid>
            </m:properties>
        </content>
    </entry>
    <entry>
        <id>2</id>
        <title type="text"></title>
        <updated>2010-04-27T20:41:23Z</updated>
        <author>
            <name />
        </author>
        <link rel="edit" title="Test_Locations" href="http://www.test.com/id=2" />
        <category term="MySQLModel.Test_Locations" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
            <m:properties>
                <d:FieldLocation>Yet Another Test Location</d:FieldLocation>
                <d:Locationid>test25</d:Locationid>
            </m:properties>
        </content>
    </entry>
</feed>

© Stack Overflow or respective owner

Related posts about as3

Related posts about xml-parsing