2016-11-23 51 views
1

我有了一個給定結構(我不能改變它)的XMLE文檔,它是這樣的:jQuery的 - 如何訪問多個XMLE孩子,一些具有相同名稱的

<index> 
<letter> 
<title>A</title> 
<mainTerm> 
    <title>Some description</title> 
    <code>Q87.1</code> 
</mainTerm> 
<mainTerm> 
    <title>Another Description</title> 
    <see>Some reference to other entries</see> 
</mainTerm> 
<mainTerm> 
    <title>Another term<nemod>(-some) (detail)</nemod></title> 
    <code>F44.4</code> 
</mainTerm> 
<mainTerm> 
    <title>A more detailed term</title> 
    <seeAlso>similar terms</seeAlso> 
    <term level="1"> 
    <title>acute</title> 
    <code>R10.0</code> 
    </term> 
    <term level="1"> 
    <title>angina</title> 
    <code>K55.1</code> 
    </term> 
</mainTerm> 
</letter> 
</index> 

我是什麼試圖做的就是使用jQuery來訪問這個文件的內容,並用它建立一個表格。

問題是我無法正常訪問某些節點。

這裏是jQuery來訪問XML文件:

$.ajax({ 
url: 'index.xml', // name of file you want to parse 
dataType: "xml", 
success: parse, 
error: function(){alert("Error: Something went wrong");} 
}); 

這裏是我試圖用它來建表腳本:

function parse(document){ 
$(document).find("letter").each(function(){ 

$code = ($(this).find('code').text()); 
$desc = ($(this)).find('mainTerm->title').text(); 

//Build table 
$("#content").append(
    '<table><tr><th>Code</th><th>Description</th></tr><tr><td> '+$code+' </td> <td> '+$desc+' </td></tr></table>' 
);     
}); 
} 

的$ code變量的作品,但$ desc沒有。我如何訪問節點index->​​ letter-> mainTerm-> title的文本?請注意,還有一個名爲「標題」的節點位於較高的位置,我不需要。

欣賞任何建議!

+1

試過嗎? '$ desc = $(this).find('mainTerm title')。text();' – winseybash

+0

非常感謝@winseybash,它現在就開始了!這比我想象的要容易! – Cucurigu

回答

1

使用此:

$desc = $(this).find('mainTerm title').text(); 

它選擇title所選擇的項目的mainTerm元件內。

element selection上閱讀更多。

+0

再次感謝@winseybash!感謝您的鏈接,這也是非常有用的,雖然我發現很難找到深入的教程,如何解析/處理複雜的XML文件,多個子節點... – Cucurigu

+0

@Cucurigu選擇XML元素完成與HTML元素完全一樣,所以應該有大量的教程。 – winseybash

相關問題