2010-11-18 78 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

相关问题