您好我正在尝试使用DOM PARSER解析img,并且由于某种原因它会抛出解析错误。 请帮我找到解决方案。据我所知,图片标签不需要关闭标签,浏览器会在加载时将其删除,从而产生解析问题。
小提琴:
HTML:
<body>
<img src="test">
</body>
或
<body>
<img src="test"/>
</body>
或
<body>
<img src="test"></img>
</body>
的javascript:
var html = document.body.innerHTML;
function parseXML(html)
{
var parser, componentDoc;
if (window.DOMParser)
{
parser = new DOMParser(); // should work for FF and IE 9
componentDoc = parser.parseFromString(html,"application/xhtml+xml");//this line must be creating the issue. which mime type is better
}
else
{
componentDoc = windowsParse(html);
}
return componentDoc;
}
var component = parseXML(html);
console.log(component);
答案 0 :(得分:1)
在由DOM解析器处理之后,图像标记在内部被视为:
<img src="test">
请注意,它不是自动关闭的(HTML中不存在),也没有结束标记(因为<img>
没有</img>
)。
(为了证明这一点,请尝试console.log(html);
)
因此,您尝试解析的HTML是......好吧,只是一个开始标记。但是你要告诉它解析为XHTML + XML,它在<img>
标签上没有这个规则。
您可能会使用text/html
作为文档类型,但请记住,这会生成一个简单的<html><head></head><body><img></body></html>
结构。