Селектор XPath для JQuery - PullRequest
       4

Селектор XPath для JQuery

3 голосов
/ 05 января 2012

Я ищу плагин jQuery или что-нибудь, что позволило бы мне легко выбирать элементы через xpath после синтаксического анализа XML с помощью $.parseXML.
Нет никакого способа использовать селекторы CSS, поскольку это порт javascript для программы .NET, которая уже использует селекторы XPath.

Я видел много вопросов, задаваемых по этому вопросу, но не смог найти ни одного жизнеспособного ответа, хотя это выглядит достаточно просто, и это стало неожиданностью, когда я узнал, что это не поддерживается.

Спасибо!

EDIT: Проблема НЕ в разборе XML, что я знаю, как это сделать. Проблема заключается в выполнении запросов XPath к проанализированному XML.

В настоящее время требуется поддержка для собственных браузеров Android и iOS (которые основаны на webkit), но Windows Phone может вскоре понадобиться поддержка.

Ответы [ 3 ]

0 голосов
/ 05 января 2012

Вы также можете сделать:

$('person', myXML).each(function(){
    //blah
});

Селектор принимает два параметра. Второй параметр - это контекст, в котором можно найти селектор со значением по умолчанию document

0 голосов
/ 09 января 2012

Ну, я не нашел хорошего ответа.

В качестве жизнеспособной альтернативы я нашел замечательную библиотеку из GoogleCode: http://goog -ajaxslt.sourceforge.net /
Там есть кроссбраузерная реализация XPath, которую можно использовать независимо от всей среды, и это здорово.

0 голосов
/ 05 января 2012

Вы можете получить значения xml следующим образом:

$(myXML).find('person').each(function(i, val) {
  // i is the counter of this element
  var age = $(val).attr('age'); // this is an attribute of the person node
  var firstName = $(val).find('firstname').text();
  var lastName = $(val).find('lastname').text();
}

Это будет работать с:

...
<person age="3">
<firstname>Babe</firstname>
<lastname>Ruth</lastname>
</person>
<person age="44">
<firstname>Hank</firstname>
<lastname>AAron</lastname>
</person>
...

См. здесь

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