簡體   English   中英

ajax響應文本xml到html

[英]ajax response text xml to html

我有一個帶有xml數據類型響應的ajax函數。 我需要將此響應指定為下拉控件。 如何從XML響應中訪問Id和Name的值?

我嘗試了data [i] .getElementsByTagName(“Id”)[0] .childNodes [0] .nodeValue; 這沒有給我任何價值

$.ajax({
  url: 'POWeb.asmx/GetStates?countryId=' + thisval,

  success: function (data) {
           var x = data.getElementsByTagName("KeyValueInt");
           var html = '<select>'

           for (i= 0; i < length; i++) {
                item = data[i].getElementsByTagName("Id")[0].childNodes[0].nodeValue;
                value = data[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue;
                html += '<option value=' + item + '>' + value + '</option>';
           }
           html += '</select>';
           alert(html);
 },
 error: function (XMLHttpRequest, textStatus, errorThrown) {
     //some stuff on failure
 }
});


<?xml version="1.0" encoding="utf-8"?>
<ArrayOfKeyValueInt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<KeyValueInt>
  <Id>51</Id>
  <Name>Ontario</Name>
</KeyValueInt>
<KeyValueInt>
  <Id>52</Id>
  <Name>Quebec</Name>
</KeyValueInt>
<KeyValueInt>
  <Id>53</Id>
  <Name>Nova Scotia</Name>
</KeyValueInt>

您錯過了XML文件中的結束標記</ArrayOfKeyValueInt> 並且data不是數組,而是DOM對象。 以下代碼應為okey:

success: function(data) {
       var x = data.getElementsByTagName("KeyValueInt");
       var html = '<select>'

       for (i= 0; i < x.length; i++) {
            item = x[i].getElementsByTagName("Id")[0].childNodes[0].nodeValue;
            value = x[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue;
            html += '<option value=' + item + '>' + value + '</option>';
       }
       html += '</select>';
       alert(html);
},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM