выберите дочерний элемент xml с помощью jQuery - PullRequest
2 голосов
/ 02 августа 2011

Можно ли найти элемент xml, выполнив поиск по значению дочернего элемента?

Так для XML, например:

<route>
    <name>Lakeway</name>
    <abrv>LAKE</abrv>
    <eta>
        <time>00:30</time>
        <dest>MAIN</dest>
    </eta>
</route>

Если у меня есть только значение abrv , как бы я проанализировал xml, чтобы получить дочерние элементы тегов eta ?

Это выполнимо с jQuery без циклического прохождения каждого элемента и сравнения значений с определенной переменной?Или есть лучший способ сделать это?

РЕДАКТИРОВАТЬ:

Я пытаюсь проанализировать поток XML из другого домена.Я не уверен, смогу ли я сделать это с помощью функции xmlParse или мне нужно будет использовать функции jjuery Ajax?

Ответы [ 2 ]

2 голосов
/ 02 августа 2011

Вы можете использовать фильтр contains для фильтрации узлов на основе этого значения.

Что-то вроде

$(xml).find('abrv:contains(LAKE) + eta > *')

вернет объект jQuery с двумя элементами для образца документа.

<time>00:30</time>
<dest>MAIN</dest>

Вот пример .

1 голос
/ 02 августа 2011

Может быть, что-то вроде этого:

var xmlString = "<route><name>Lakeway</name><abrv>LAKE</abrv><eta><time>00:30</time><dest>MAIN</dest></eta></route>",
xmlDoc = $.parseXML( xmlString ),
$xml = $( xmlDoc ),
$abrv = $xml.find( "abrv" ).text() == "LAKE" ? $xml.find( "abrv" ) : false;

var time = $abrv.next().children("time").text();
var dest = $abrv.next().children("dest").text();

alert(time + " " + dest);

http://jsfiddle.net/jensbits/UH2m5/

Надеюсь, это поможет вам начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...