使用 as3 解析自定义 XML
Parse a custom XML with as3
我有一个 XML 但我没有找到解析它的方法(读取里面的数据)
<Saa:Header>
<Saa:Message>
<Saa:SenderReference> data
</Saa:SenderReference>
</Saa:Message>
<Saa:Message>
<Saa:SenderReference> data
</Saa:SenderReference>
</Saa:Message>
</Saa:Header>
我使用as3语言
[it] contains methods and properties for working with XML objects. The XML class (along with the XMLList, Namespace, and QName classes) implements the powerful XML-handling standards defined in ECMAScript for XML (E4X) specification (ECMA-357 edition 2).
在你的问题中使用你的例子(假设你的 data
是一个字符串),你可以按照这些行做一些事情:
//your xml needs a namespace identifier to be valid
//I've added one on the header node.
//Likely if you're consuming this xml from some third party, the namespace declaration will be on root node.
var myXML = <Saa:Header xmlns:Saa="urn:swift:saa:xsd:saa.2.0" >
<Saa:Message>
<Saa:SenderReference> data
</Saa:SenderReference>
</Saa:Message>
<Saa:Message>
<Saa:SenderReference> data
</Saa:SenderReference>
</Saa:Message>
</Saa:Header>;
//create a reference to the `Saa` namespace that prefixes all your xml nodes
var saaNamespace:Namespace = new Namespace("urn:swift:saa:xsd:saa.2.0");
//tell AS3 to use that namespace by default
default xml namespace = saaNamespace;
//basically an array of all the SenderReference nodes in the entire xml
var xmlList:XMLList = myXML..SenderReference;
//This line will give the same results as the line above, but if there were SenderReference nodes somewhere else in the document that weren't under Message nodes, they would not be included (unlike above)
xmlList = myXML.Message.SenderReference;
//iterate through all the SenderReference nodes
for(var i:int=0;i<xmlList.length();i++){
trace("Node #" + (i+1) + ":",xmlList[i]);
}
在AS3中XML有很多方法可以获取你想要的数据,好文章is this one from senocular。
我有一个 XML 但我没有找到解析它的方法(读取里面的数据)
<Saa:Header>
<Saa:Message>
<Saa:SenderReference> data
</Saa:SenderReference>
</Saa:Message>
<Saa:Message>
<Saa:SenderReference> data
</Saa:SenderReference>
</Saa:Message>
</Saa:Header>
我使用as3语言
[it] contains methods and properties for working with XML objects. The XML class (along with the XMLList, Namespace, and QName classes) implements the powerful XML-handling standards defined in ECMAScript for XML (E4X) specification (ECMA-357 edition 2).
在你的问题中使用你的例子(假设你的 data
是一个字符串),你可以按照这些行做一些事情:
//your xml needs a namespace identifier to be valid
//I've added one on the header node.
//Likely if you're consuming this xml from some third party, the namespace declaration will be on root node.
var myXML = <Saa:Header xmlns:Saa="urn:swift:saa:xsd:saa.2.0" >
<Saa:Message>
<Saa:SenderReference> data
</Saa:SenderReference>
</Saa:Message>
<Saa:Message>
<Saa:SenderReference> data
</Saa:SenderReference>
</Saa:Message>
</Saa:Header>;
//create a reference to the `Saa` namespace that prefixes all your xml nodes
var saaNamespace:Namespace = new Namespace("urn:swift:saa:xsd:saa.2.0");
//tell AS3 to use that namespace by default
default xml namespace = saaNamespace;
//basically an array of all the SenderReference nodes in the entire xml
var xmlList:XMLList = myXML..SenderReference;
//This line will give the same results as the line above, but if there were SenderReference nodes somewhere else in the document that weren't under Message nodes, they would not be included (unlike above)
xmlList = myXML.Message.SenderReference;
//iterate through all the SenderReference nodes
for(var i:int=0;i<xmlList.length();i++){
trace("Node #" + (i+1) + ":",xmlList[i]);
}
在AS3中XML有很多方法可以获取你想要的数据,好文章is this one from senocular。