Un retour de service Web à mon client Flex3 cette exception personnalisée:comment accéder aux nœuds xml flex
<SOAP-ENV:Fault xmlns:ro="urn:Gov2gLibrary" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:HNS="http://tempuri.org/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v1="http://tempuri.org/">
<faultcode>E2gError</faultcode>
<faultstring>abc</faultstring>
<detail>
<HNS:ROException>
<HNS:Messages>
<HNS:T2gMsg>
<HNS:ID>4545</HNS:ID>
<HNS:Severity>abc</HNS:Severity>
<HNS:Category>abc</HNS:Category>
<HNS:Message1>abc</HNS:Message1>
<HNS:Message2 />
</HNS:T2gMsg>
<HNS:T2gMsg>
<HNS:ID>345344</HNS:ID>
<HNS:Severity>abc</HNS:Severity>
<HNS:Category>abc</HNS:Category>
<HNS:Message1>abc</HNS:Message1>
<HNS:Message2 />
</HNS:T2gMsg>
</HNS:Messages>
</HNS:ROException>
</detail>
</SOAP-ENV:Fault>
Ceci est évidemment une partie de l'objet FaultEvent que je reçois quand l'appel à distance échouent, donc je suis essayant d'accéder à des valeurs sous-nœud « T2gMsg » comme ceci:
protected function onFaultEvent(e:FaultEvent):void
{
var obj:Object = e.fault;
var err:XMLList = obj.element.detail.children()[0].children();
// now I have in err the "Messages" list, subnode of ROException,
// so I should cycle to read one message at time:
for each (var x:XML in err.children())
{
//?
}
maintenant, je ne peux pas comprendre comment lire ID, la gravité des valeurs etc. Je pense que quelque chose comme "x.ID" devrait fonctionner mais ce n'est pas le cas, alors que x.child ("ID") ou x.elements ("ID") renvoient null. Que puis-je faire?
désolé, je ne comprends pas, je sais XML (x.children() [0]) localName() toString() -> "ID", mais je.. voulez accéder à la valeur d'ID par son nom, comme x.ID ou x ["ID"] ou x.some_method ("ID"), et non par index. –
Je suppose qu'il y aura un peu d'action if/else. –
l'a trouvé dans livedocs, merci quand même –