无法获得namspaced元素

时间:2014-10-02 23:56:38

标签: javascript xml-namespaces domparser

我有一个带有命名空间XML文档的字符串:

  <?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom" xmlns:zapi="http://zotero.org/ns/api">
    <entry>
      <zapi:year>2014</zapi:year>
    </entry>
  </feed>

我用一个javascript DOM解析器解析它(其中zXml是上面的字符串):

var dp = new DOMParser();
var zDom = dp.parseFromString(zXml, "text/html");
var entry = zDom.querySelector("entry");

然后我想要这一年,所以我尝试:

entry.getElementsByTagNameNS("http://zotero.org/ns/api", "year")

不幸的是,这给了我一个空列表[]

我该怎么办?

2 个答案:

答案 0 :(得分:1)

啊,发现了。只需使用

var zDom = dp.parseFromString(zXml, "text/xml");

答案 1 :(得分:0)

你是如何反对jQuery的? http://jsbin.com/vutura/3/edit

zXml = '<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:zapi="http://zotero.org/ns/api"><entry><zapi:year>2014</zapi:year></entry></feed>';
;

zDom = $.parseXML(zXml);
console.log($(zDom).find('entry').text());