Java-скрипт XML Reader возвращает пустой HTMLCollection - PullRequest
0 голосов
/ 30 августа 2018

Я пытался получить все заголовочные теги, анализируя XML с помощью DOMParser. Ниже приведен мой код,

function fetchHeaders(text){
    text = '<body><custom h:f="val"><h2></h2></custom></body>';
    var parser = new DOMParser();
    var xmlDoc = parser.parseFromString(text,"text/xml");
    console.log(xmlDoc.getElementsByTagName('h2'));
}

возвращает пустую коллекцию HTML вместо h2 тегов.

Без свойства h:f="val" работает нормально.

Почему поиск тега завершается неудачно, если тег содержит свойство с : в нем?

1 Ответ

0 голосов
/ 30 августа 2018

Строка xml содержит пространство имен (: h), но не разрешается ни к чему.

var xmlString = '<body xmlns:h="http://www.w3.org/1999/xhtml"><custom h:f="val"><h2></h2></custom></body>';
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlString,"text/xml");
console.log(xmlDoc.getElementsByTagName('h2'));

Кроме того, вы можете заменить все вхождения пространства имен: h.

var xmlString = '<body><custom h:f="val"><h2></h2></custom></body>';
xmlString = xmlString.replace(/h:/g, "");  
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlString,"text/xml");
console.log(xmlDoc.getElementsByTagName('h2'));
...