我通过AJAX responseText获得了一些HTML代码,该文本长350-400行。它已作为字符串存储在变量text
中,我想将其解析为XML。但是,某些内容在解析时会被删除。结果以script
部分结束,并且代码的body
部分都看不到。
var xml = (new DOMParser()).parseFromString(text, "text/xml");
alert(xml.querySelector("body"));
console.log(text);
console.log((new XMLSerializer()).serializeToString(xml));
对于console.log(text)
的结果,它返回完整的代码。
但是console.log((new XMLSerializer()).serializeToString(xml))
的结果返回一个非常不完整的结果,其结果如下:
for (i = 0; i </script></head></html>
警报之一显示null
,因此我很确定自解析过程以来内容已丢失。
有人可以告诉我如何解决吗?
答案 0 :(得分:0)
HTML并不总是有效的XML。从部分输出看来,您正在尝试解析HTML。在这种情况下,应将parseFromString
的第二个参数更改为"text/html"
而不是"text/xml"
。之后,XML序列化应该可以正常工作。
此外,要获取序列化的字符串,您还可以访问从documentElement.outerHTML
方法返回的Document对象的属性parseFromString
。