在引入DOMParser的同时,Fifrefox还引入了XMLSerializer类型,提供了相反的功能:将DOM文档序列化为XML字符串。后来,Opera、Chrom和Safari都支持了XMLSerializer,但IE8仍然不支持XMLSerializer。
要序列化DOM文档,首先必须创建XMLSerializer的实例,然后将文档传入其serializeToString()方法,如下面的例子所示:
var parser = new DOMParser(); var xmldom = parser.parseFromString("<root><child/></root>", "text/xml"); var serializer = new XMLSerializer(); var xml = serializer.serializeToString(xmldom); alert(xml);
但是,serializeToString(0方法返回的字符串并不适合打印,因此看起来会显得乱糟糟的。
XMLSerializer可以序列化任何有效的DOM对象,不仅包括个别的节点,也包括HTML文档。将HTML文档传入serializeToString(0以后,HTML文档将被视为XML文档,因此得到的代码也将是格式良好的。
如果将非DOM对象传入serializeToString(),会导致错误发生。