2016-02-09 107 views
0

我試圖從以下xml中使用jquery檢索頂級「標籤」屬性,並將其解析爲一個沒有運氣的DOM對象。有關我如何做到這一點的任何建議?我嘗試過使用children(),parent()函數並沒有運氣 - 我得到的結果都不是,或者最終將標籤標籤的所有實例傳回給我。jquery檢索頂級xml節點

的jQuery:

xml = $.parseXML(xmlString); 
$xml = $(xml); 

我遍歷通過$($xml).find('fields').each(function(){等.. 字段,但不能獲取頂級label數據!

<customobject> 
    <label>want this content</label> 
    <fields> 
     <label>foo</label> 
     <attr1></attr1> 
     <attr2></attr2> 
    </fields> 
    <fields> 
     <label>foo2</label> 
     <attr1></attr1> 
     <attr2></attr2> 
    </fields> 
</customobject> 

回答

0

你可以找label這是customobject一個孩子,就像下面。只是用find('label')將從所有label元素

var xmlString = '<customobject><label>want this content</label><fields><label>foo</label><attr1></attr1><attr2></attr2></fields><fields><label>foo2</label><attr1></attr1><attr2></attr2></fields></customobject>'; 
 
var xml = $.parseXML(xmlString); 
 
var $xml = $(xml); 
 

 
alert($xml.find('customobject > label').text())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

洛爾 - 謝謝。非常簡潔,簡單,因爲我擔心它會是:P – user1517566

0

希望返回的內容,這將是有益的

var xml = "<customobject>"+ 
       "<label>want this content</label>"+ 
       "<fields>"+ 
        "<label>foo</label>"+ 
        "<attr1></attr1>"+ 
        "<attr2></attr2>"+ 
       "</fields>"+ 
       "<fields>"+ 
        "<label>foo2</label>"+ 
        "<attr1></attr1>"+ 
        "<attr2></attr2>"+ 
       "</fields>"+ 
      "</customobject>"; 

    xmlDoc = $.parseXML(xml), 
    $xml = $(xmlDoc), 
    $firstLabelbject = $xml.find("customobject label")[0].innerHTML; // Will select first label 
    console.log($firstLabelbject); 

JSFIDDLE EXAMPLE