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

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

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

谁能告诉我如何解决它?

javascript xml xml-parsing
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.