XPath选择器用于JQuery

3
我正在寻找一个jQuery插件或其他任何工具,可以在使用$.parseXML解析XML后轻松地通过xpath选择元素。
无法使用CSS选择器,因为它是针对已经使用XPath选择器的.NET程序的JavaScript端口。
我看到有很多关于这个问题的提问,但没有看到任何可行的答案,这似乎是一种基本需求,当我知道不受支持时感到惊讶。
谢谢!
编辑: 问题不是解析XML,我知道如何做。 问题是在解析的XML上运行XPath查询。
目前所需支持的是Android和iOS原生浏览器(均基于Webkit),但Windows Phone可能很快也需要支持。

你需要跨浏览器支持吗?我不确定其他浏览器,但Mozilla确实支持XPath(请参见这里)。 - bfavaretto
正如Todd所指出的那样,在jQuery中解析XML不需要任何特殊的东西--只需要使用相同的标记和属性选择器,就像在HTML文档中一样。 - Blazemonger
3个回答

0

嗯,我没有找到好的答案。

作为一个可行的替代方案,我在GoogleCode上找到了这个不错的库:http://goog-ajaxslt.sourceforge.net/
那里有一个跨浏览器的XPath实现,可以独立于整个框架使用,并且效果很好。


0

您可以像这样获取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>
...

请查看这里


0

你也可以这样做:

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

选择器需要两个参数。第二个参数是查找选择器的上下文,默认为document

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接