2013-04-04 86 views
0

我想從一個很大的.xml文件,其中包含相當無益的標籤採取數據。這些標籤都幾乎相同,並且我無法對xml輸出做任何事情。這些XML文件將會定期更新,我希望能夠自動化網站的流程,輕鬆獲取相關數據。我希望能夠獲取xml文件,並使用jquery的:contains()動作,但似乎無法使其工作。使用:包含在jQuery的XML解析

XML file is here

這裏是我的代碼:

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
</head> 
<body> 
<p id="manpower"></p> 
<script> 
$(document).ready(function(){ 
$.ajax({ 
    type: "GET", 
    url: "test.xml", 
    dataType: "xml", 
    success: function(xml) { 
    $title = $(xml).find("Key"); 

    $("#manpower").append($title.text()); 
    } 
}); 
}); 
</script> 
</body> 
</html> 

所以上面的代碼工作正常,它給所有的「鑰匙」不過,我想先找到的是:包含(「time_cost」 ),然後橫穿兒童和層次結構到xml文件末尾的人力數據。我需要這樣做的原因是因爲在完整文件中有多個人力參考,但time_cost是唯一的。如果有人能夠幫助至少獲得最接近的功能,我將不勝感激。

我曾嘗試:

$title = $(xml).find("Key:closest('time_cost')"); 

但它不工作。我對jQuery相當陌生,所以我可能會做一些相當微不足道的事情?

這是當地的jsfiddle版本: http://jsfiddle.net/yN3Sj/4/

+0

你的問題說: 「載」,但該代碼表示​​ 「最接近的一次。」這是什麼? – 2013-04-04 02:52:30

+0

什麼是價值,你想作爲輸出 – 2013-04-04 03:12:56

回答

1

你爲什麼不這樣做,它會給出一個具有關鍵manpowerValue元素。

xmlDoc = $.parseXML(xml), 
$xml = $(xmlDoc), 
$time_cost = $(xml).find("Key:contains('time_cost')"), 
$manpower = $('Key:contains("manpower")', $time_cost.parent()).parent(); 

演示:Fiddle

+0

嗯intersting,沒有想到它那樣。主要問題是有多個條目與'人力',所以我最終通過使用更獨特的標記和使用.next()和.prev() – user2242999 2013-04-04 04:38:29