DOM解析器在img标签上给出错误

时间:2014-05-08 12:15:48

标签: javascript html domparser

您好我正在尝试使用DOM PARSER解析img,并且由于某种原因它会抛出解析错误。 请帮我找到解决方案。据我所知,图片标签不需要关闭标签,浏览器会在加载时将其删除,从而产生解析问题。

enter image description here

小提琴:

http://jsfiddle.net/ygR4L/

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);

1 个答案:

答案 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>结构。