2012-01-05 14 views
3

私は、jQueryプラグインか、$.parseXMLを使用してXMLを解析した後、xpathを通して要素を簡単に選択できるものを探しています。
CSSセレクタを使用する方法はありません。これは、既にXPathセレクタを使用している.NETプログラムのjavascriptポートだからです。JQueryのXPathセレクター

私はこの問題について多くの質問をしましたが、基本的な必要性はあるものの、実行可能な回答は見当たりませんでした。サポートされていないことを覚えていたのは驚きでした。

ありがとうございます!

EDIT: 問題はXMLを解析することではなく、私が行う方法を知っていることです。 問題は、解析されたXMLでXPathクエリを実行していることです。

現在、必要なサポートはAndroidおよびiOSネイティブブラウザ(どちらもwebkitベース)ですが、Windows Phoneでもすぐにサポートが必要になることがあります。

+0

クロスブラウザサポートが必要ですか?私は他のブラウザについてはわかりませんが、MozillaはXPathをサポートしています([here](https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript)を参照してください) – bfavaretto

+0

Toddが指摘するように、解析するために特別なものは必要ありませんjQueryのXML - HTMLドキュメントで使用するのと同じタグと属性セレクタを使用するだけです。 – Blazemonger

+0

私の編集をご覧ください。 – Svarog

答えて

0

まあ、私は良い答えが見つかりませんでした。そこ全体のフレームワークから独立して使用することができるが、クロスブラウザのXPathの実装だ、と仕事の偉大http://goog-ajaxslt.sourceforge.net/
:私はGoogleCodeからこの素敵なライブラリを見つけた実行可能な代替案として

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', myXML).each(function(){ 
    //blah 
});

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

はあなたにも行うことができますhere

+0

私の編集をご覧ください。 – Svarog

0

を参照してください。セレクタは2つパラメーター。 2番目のパラメータは、デフォルトのセレクタを見つけるためのコンテキストですdocument

+0

私の編集をご覧ください。 – Svarog