2010-11-18 10 views
1

私は大きなjQueryプロジェクトをしばらく試していましたが、名前空間でXMLを解析しようとするまですべてがスムーズに進んでいました。私はjQueryの1.4.2を使用していると私はいくつかの異なるsolutionsを試してみた:jQuery(またはJavaScript)を使用して名前空間を含むXMLを解析する

$(xml).find('[nodeName=ns:blah]')... 
$(xml).find('ns\\:blah')... 

をそして私はjQuery.xmlns.js pluginを試してみましたが、それはどちらか動作していないようです。

<response xmlns:ns='http://example.com/ex/'> 
    <response>SUCCESS</response> 
    <action>QUERY</action> 
    <data> 
    <ns:blah>Trying to reach me!</ns:blah> 
    </data> 
</response> 

は、誰もが好ましくjQueryのか、クロスブラウザのJavaScriptの実装を使用して、解決策を知っています:

XML

は次のようにフォーマットされて?

EDIT:うん、私はコード内で正しくエスケープしていましたが、ここにはありません。私はそれを修正しました。

答えて

1

あなたのエスケープは、この(バックスラッシュ)のようになります。

$(xml).find('ns\\:blah')... 

例:jQueryの最新バージョンにhttp://jsfiddle.net/cUhZH/

アップグレード。私は、名前空間の属性を選択することに関して、1.4.3にいくつかの修正があると信じています。

+0

あなたの例では動作しますが、私のコードでは動作しません。 jsFiddleにコードをコピーして貼り付けてみましたが、うまくいきました。 – ravun

+0

奇妙なことに、テストページを作成してjquery 1.4.2をインクルードすると動作しますが、他の開発者が使用しているバンドルされたjquery + plugins libを使用しているときは動作しません。実際に1.4.2を使用しているかどうかを判断する必要があると思います。 – ravun

+0

@ravun - jQueryのバージョンが1つだけ*であることを確認します。実行しているバージョンをテストするには、 'alert(jQuery.fn.jquery);を実行し、それが何を伝えているかを見てください。 – user113716

関連する問題