将字符串解析为xml时丢失了一些内容

时间:2019-04-11 11:02:15

标签: javascript xml xml-parsing

我通过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,因此我很确定自解析过程以来内容已丢失。

有人可以告诉我如何解决吗?

1 个答案:

答案 0 :(得分:0)

HTML并不总是有效的XML。从部分输出看来,您正在尝试解析HTML。在这种情况下,应将parseFromString的第二个参数更改为"text/html"而不是"text/xml"。之后,XML序列化应该可以正常工作。

此外,要获取序列化的字符串,您还可以访问从documentElement.outerHTML方法返回的Document对象的属性parseFromString