2010-03-04 6 views
5

J'ai un problème, je veux obtenir des données à partir du fichier XML (si je peux dire que c'est un fichier XML), avec jQuery:Xml Appel avec jQuery, (XML non valide)

Ceci est mon jQuery, il fonctionne avec le fichier XML normal:

$.ajax({ 
     type: "GET", 
     url: "test.xml", 
     dataType: "xml", 
     success: function(xml) { 
      $(xml).find('result').each(function(){ 
      var bid = $(this).find('bid').text(); 
      alert(bid); 
      }); 
      } 
     }); 

Mais ce sont les données:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/"> 
<?xml version="1.0" ?> 


<T_transmission> 
<result> 
<last>9.9200</last> 
<bid>9.9000</bid> 
<ask>9.9200</ask> 
<mid>9.9100</mid> 
</result> 

</T_transmission> 

</string> 

Parce qu'il a «<string ...> il ne fonctionne pas ...

Quelqu'un peut-il suggérer comment résoudre ce problème ou peut-être y at-il une autre façon de corriger ...

Merci beaucoup !!!!!!

+1

De quoi est-ce que ce pseudo-XML vient? – SLaks

+0

Je n'ai aucune idée, j'ai juste le chemin de ce XML, et rien d'autre – AlexC

+0

Ouais, ce n'est certainement pas XML. Il n'y a pas de mode "récupération d'erreur" ou "sorta ok" pour XML. C'est ou n'est pas. –

Répondre

11

Si le format xml est totalement hors de votre contrôle, vous pouvez le pirater un peu comme ça. Cela a fonctionné pour moi dans FireFox.

$.ajax({ 
    type: "GET", 
    url: "test.xml", 

    // change dataType to 'text' so that jquery doesn't try to parse xml 
    dataType: "text", 
    success: function(xml) { 

    // just remove the declaration using replace() 
    xml = xml.replace('<?xml version="1.0" ?>', ''); 

    $(xml).find('result').each(function(){ 
    var bid = $(this).find('bid').text(); 
    alert(bid); 
    }); 
    } 
}); 
+0

Vous êtes vraiment homme !!! Merci beaucoup !!!!!!! – AlexC

+12

Ma femme sera heureuse d'entendre ça! Vous êtes les bienvenus. – jessegavin

0

Vous devrez peut-être mettre à jour votre version de jquery, ou essayez de lire le fichier comme un fichier normal, puis utilisez jquery pour l'analyser.