Actionscript 3 E4X working with namespace values in XML

后端 未结 1 1318
陌清茗
陌清茗 2021-01-26 20:53

I am building an application using Action script 3 I am retrieving some XML from the web however the node names are mms:Image mms:Results etc my action script compiler is throwi

相关标签:
1条回答
  • 2021-01-26 21:51

    Those are XML namespaces and they can be a pain to use. Have a look at the Adobe documentation on Using XML namespaces.

    Basically you have to get the namespace:

    var mmsNS:Namespace = message.namespace("mms");
    
    // alternatively for nested namespaces:
    
    var mmsNS:Namespace = new Namespace("mms", " ... url of namespace ... ");
    

    And then use it when you want to get the nodes that it is applied to:

    var data:XML = message.@mmsNS::Results;
    

    A shortcut if all of your xml is in a particular namespace is to set the default namespace:

    default xml namespace = mmsNs;
    

    edit: The XML namespace you are trying to access must be declared within the XML fragment:

    <root xmlns:mms="http://example.com/mms">
        <mms:someNode someAttr="someVal" />
    </root>
    

    Have a look at the w3c docs for XML Namespaces to ensure your document is well-formed (maybe even pass it through a validator).

    0 讨论(0)
提交回复
热议问题