2016-12-01 102 views
3

我使用$.get()向URL發送請求。響應文本返回與下面的XML:從jquery ajax的XML格式化響應讀取值

<?xml version="1.0" encoding="UTF-8" ?> 
<myNode> 
    <cmd>Requested Item</cmd> 
    <myValue>this is the text i need to get with jquery</myValue> 
    <res>OK</res> 
</myNode> 

我需要得到<myValue></myValue>標籤上的文字:

<myValue>this is the text i need to get with jquery</myValue> 

我曾嘗試在$獲得()函數下面的代碼:

$.get(url,function(xml){ 
    var x, i, attnode, xmlDoc, txt; 
    xmlDoc = xml.responseXML; 
    x = xmlDoc.getElementsByTagName('data'); 
} 

但是在變量x中沒有值。

回答

2

只是包裝的XML與$(jQuery的)功能,那麼你可以使用.find找到節點。像$(xml).find('myValue').html()

演示的東西(在本演示中,我沒有使用AJAX,但原理是一樣的):

var xml = '<?xml version="1.0" encoding="UTF-8" ?>' + 
 
    '<myNode>' + 
 
    '<cmd>Requested Item</cmd>' + 
 
    '<myValue>this is the text i need to get with jquery</myValue>' + 
 
    '<res>OK</res>' + 
 
    '</myNode>'; 
 

 
var x = $(xml).find('myValue').html(); 
 
console.log(x);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

精彩的解決方案。謝謝。 –

+0

我的榮幸:)祝你好運.. –

1

試試這個:

$.get(url,function(xml){ 
    var x, i, attnode, xmlDoc, txt; 
    xmlDoc = $.parseXML(xml.responseXML); 
    var $xml = $(xmlDoc); 
    var myValue= $xml.find("myValue"); 
    console.log(myValue.text()) 
} 

文檔:https://api.jquery.com/jQuery.parseXML/

+0

是它也工作。我注意到,我沒有搜索結果作爲$(xml)...再次感謝 –