2014-01-17 50 views
1

我正在使用jQuery来解析一个XMl文件。jQuery XML解析,两个不同的节点,同名

XML文件包含以下内容:

<item> 
<title> Hello! </title> 
<media:title> Hello! </media:title> 
</item> 

我要分析什么是title里面,当我使用

var parsedTitle = $item.find("title"); 
console.log(parsedTitle.text()); //output: Hello!Hello! 

输出将被复制,因为有两个节点同名。

我该如何选择其中之一?比方说,我想用命名空间来解析标题

+0

'.find ()'返回一个不是textContent的集合,[你能重现这个问题](http://jsfiddle.net)? – undefined

+0

我更新了我的问题。我使用'.text()'来获取textContent。 – Sobiaholic

回答

0
var parsedTitle = $item.find("title").filter(function() { 
    return this.namespaceURI === "http://the/media/namespace/uri/"; 
}); 

您还可以扩展jQuery来支持命名空间中选择:

$.expr[':'].ns = function (obj, index, meta, stack) { 
    return obj.namespaceURI === meta[3]; 
}; 

后来

var parsedTitle = $item.find("title:ns(http://the/media/namespace/uri/)");