2010-03-04 25 views
5

Tôi có một vấn đề, tôi muốn lấy một số dữ liệu từ tệp XML (nếu tôi có thể nói đó là tệp XML), với jQuery:Xml Gọi với jQuery, (XML không hợp lệ)

Đây là jQuery của tôi, nó hoạt động với tập tin XML bình thường:

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

Nhưng đây là dữ liệu:

<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> 

Bởi vì nó có "<string ...> nó không hoạt động ...

01.235.

Ai đó có thể đề xuất cách sửa chữa hoặc có thể có một cách khác để sửa chữa ...

Cảm ơn rất nhiều !!!!!!

+1

XML giả đến từ đâu? – SLaks

+0

Tôi không có ý tưởng, tôi chỉ có đường dẫn của XML này, và không có gì khác – AlexC

+0

Vâng, đó chắc chắn không phải là XML. Không có chế độ "khôi phục lỗi" hoặc "sorta ok" cho XML. Nó hoặc là, hoặc nó không phải là. –

Trả lời

11

Nếu định dạng xml hoàn toàn nằm ngoài tầm kiểm soát của bạn, bạn có thể hack nó một chút như vậy. Điều này làm việc cho tôi trong 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

Bạn thực sự là người đàn ông !!! Cảm ơn rất nhiều !!!!!!! – AlexC

+12

Vợ tôi sẽ rất vui khi nghe điều đó! Không có gì. – jessegavin

0

Bạn có thể phải cập nhật phiên bản jquery của mình hoặc cố gắng đọc tệp như một tệp thông thường, sau đó sử dụng jquery để phân tích cú pháp đó.

Các vấn đề liên quan