Search code examples
javascriptxml-namespacesdomparser

Can't get namspaced element


I have a string with a namespaced XML document:

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

I parse this with a javascript DOM parser (where zXml is the string above):

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

Then I want the year so I try:

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

Unfortunately this gives me an empty list, [].

What should I do instead?


Solution

  • Ah, found it. Just use

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