Javascript XML Reader返回空的HTMLCollection

问题描述 投票:0回答:1

我试图通过使用DOMParser解析xml来获取所有标题。以下是我的代码,

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",它工作正常。

当标签包含带有:的属性时,为什么标签会查找失败?

javascript xml domparser
1个回答
1
投票

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'));
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.