2010-07-07 4 views
0

J'utilise Jquery. J'ai un xml renvoyé par un service web. Donc, je veux en extraire une certaine valeur.Jquery analyse XML à partir de la demande

Ceci est un exemple de code XML retourné de webservice:

<ns3:ExecuteResponse xmlns:ns3="http://www.opengis.net/wps/1.0.0" 
    xmlns:ns1="http://www.opengis.net/ows/1.1" 
    xmlns:ns2="http://www.w3.org/1999/xlink" 
    statusLocation="http://webservice:9090/b57c-43b8-40b2-8e09-4d6489df55be" 
    serviceInstance="http://xyz.it:9090/services/http-post" 
    version="1.0.0" service="XXX"> 
    <ns3:Process ns3:processVersion="0.2"> 
    <ns1:Identifier>OM_BIOCLIM</ns1:Identifier> 
    <ns1:Title xml:lang="en-US">Bioclim</ns1:Title> 
    <ns1:Abstract xml:lang="en-US">abcdefghi</ns1:Abstract> 
    </ns3:Process> 
    <ns3:Status creationTime="2010-07-07T10:42:05.768+02:00"> 
    <ns3:ProcessAccepted>ProcessConfiguration has been 
    accepted.</ns3:ProcessAccepted> 
    </ns3:Status> 
    <ns3:ProcessOutputs /> 
</ns3:ExecuteResponse> 

Donc voici mon code:

$.ajax({ 
     type: 'POST', 
     url: "php/geoproxy.php?url=http://www.abc.it:9090/1.0.0-service/services/http-post",//wpsUrl, 
      contentType: "text/xml", 
     data: xmlRequest, 
     dataType: "text/xml", 
     success: function(xml){ 

     var xmlDoc;        
     if (window.DOMParser) 
      { 
      parser=new DOMParser(); 
      xmlDoc=parser.parseFromString(xml,"text/xml"); 
      } 
     else // Internet Explorer 
      { 
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
      xmlDoc.async="false"; 
      xmlDoc.loadXML(xml); 
      } 

      //extract statusLocation attribute 
     }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
     alert("error "+XMLHttpRequest); 
    } 
}); 

Comment puis-je extraire l'attribut statusLocation de NS3: noeud ExecuteResponse?

Merci beaucoup.

+0

double possible de [\ [jQuery \] xml Parsing] (http://stackoverflow.com/questions/3187819/jquery-parsing-xml) –

+1

Vous l'avez déjà demandé et vous avez reçu une réponse correcte. Comme vous l'avez souligné, vous n'avez pas besoin d'analyser le XML: si vous utilisez '" xml "' en tant que dataType, vous recevrez un document XML dans le rappel 'success'. –

+0

Même si vous insistez pour analyser le fichier XML vous-même, la réponse vous a déjà été donnée dans l'autre question: 'xmlDoc.documentElement.getAttribute (" statusLocation ")'. –

Répondre

1

vous pouvez le faire tellement plus simple que

success: function(xml){ 
     statusLocation = $(xml).attr('statusLocation') 
} 

et ne pas utiliser les contrôles ActiveX