2013-04-04 2 views
0

Я пытаюсь взять данные из большого XML-файла, который содержит совершенно бесполезные теги. Эти теги почти одинаковы, и я ничего не могу сделать о выходе xml. Эти xml-документы будут регулярно обновляться, и я надеялся автоматизировать процесс веб-сайта, чтобы легко получить соответствующие данные. Я надеялся взять файл xml и использовать действие: contains() из jquery, но я не могу заставить его работать.Использование: содержит в 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

Ваш вопрос говорит "содержит", но код говорит "ближе." Что он? –

+0

Какая ценность, вы хотите, как выход –

ответ

1

Почему бы вам не сделать что-то подобное, это даст Value элемент, который имеет ключевое manpower.

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

Демо: Fiddle

+0

Хмм-интерстинг, не думал об этом так. Основная проблема заключается в том, что есть несколько записей с «рабочей силой», и поэтому я закончил навигацию, используя более уникальный маркер и используя .next() и .prev() – user2242999

Смежные вопросы