2010-11-18 81 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,但它似乎並沒有被任何工作。

的XML的格式類似於:

<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實現?

編輯:哎呀,我是在代碼中正確轉義,只是不在這裏。我糾正了它。

回答

1

你轉義應該像這樣(反斜線):

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

例子:http://jsfiddle.net/cUhZH/

升級到jQuery的最新版本。我相信1.4.3有一些關於選擇命名空間屬性的修復。

+0

它適用於您的示例,但不適用於我的代碼。我試圖複製和粘貼我的代碼到jsFiddle,它工作正常。 – ravun 2010-11-18 19:24:10

+0

奇怪的是,如果我構建一個測試頁幷包含jquery 1.4.2,但是當我使用其他開發人員正在使用的捆綁jQuery +插件庫時,它就會起作用,那麼它不起作用。我想我需要弄清楚他們是否真的像使用1.4.2那樣說。 – ravun 2010-11-18 19:44:47

+0

@ravun - 你想確保只加載* 1版本的jQuery。要測試你正在運行的是哪個版本,請嘗試'alert(jQuery.fn.jquery);'並且看看它告訴你什麼。 – user113716 2010-11-18 19:48:59

相關問題