2014-10-02 7 views
1

У меня есть строка с Namespaced документа XML:Невозможно получить namspaced элемент

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

я анализирую это с помощью яваскрипта 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") 

к сожалению, это дает мне пустой список, [].

Что мне делать вместо этого?

ответ

1

А, нашел. Просто используйте

var zDom = dp.parseFromString(zXml, "text/xml"); 
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()); 
+0

;-) - Это для простых страниц, которые загружаются быстро, поэтому не использую JQuery там. – Leo

+1

Я поддержал ваш ответ, так как это был всего лишь малейший вопрос. –

+0

Подробнее копия + вставка. ;-) - Хотя я не знал об этой разнице. Или я забыл об этом. – Leo