2015-05-04 2 views
0

У меня есть XML и я не нашел способ, как разобрать его (прочитать данные внутри)Разбираем пользовательский XML с as3

<Saa:Header> 
     <Saa:Message> 
      <Saa:SenderReference> data 
      </Saa:SenderReference> 
     </Saa:Message> 
     <Saa:Message> 
      <Saa:SenderReference> data 
      </Saa:SenderReference> 
     </Saa:Message> 
    </Saa:Header> 

я использовать язык as3

ответ

1

Идущие с вашим примером в вашем вопросе (который принимает ваш 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]); 
} 

Есть много способов, чтобы получить данные, которые вы хотите от XML в AS3, хорошая статья is this one from senocular.

1

The XML class is the way.

[it] содержит методы и свойства для работы с объектами XML. Класс XML (наряду с классами XMLList, Namespace и QName) реализует мощные стандарты обработки XML, определенные в спецификации ECMAScript для XML (E4X) (ECMA-357 edition 2).

Смежные вопросы