http://jsfiddle.net/superbDeveloper/Qst5e/9/(下面的JavaScript代码)
JavaScript代码
//test xml serializer
var s = new XMLSerializer();
var d = document;
var str = s.serializeToString(d);
console.log("1) serializeToString ");
console.log(str);
Firefox中的结果
1) serializeToString
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head> <meta content="text/html; charset=UTF-8" http-equiv="content-type" /> <title> - jsFiddle demo by superbDeveloper</title> <script src="/js/lib/mootools-core-1.4.2-full-nocompat.js" type="text/javascript"></script> <link href="/css/normalize.css" type="text/css" rel="stylesheet" /> <link href="/css/result-light.css" type="text/css" rel="stylesheet" /> <style type="text/css"> </style>.....
Opera中的结果
1) serializeToString
<?xml version="1.0"?><html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title> - jsFiddle demo</title>
<script type="text/javascript" src="/js/lib/mootools-core-1.4.2-full-nocompat.js"/>
<link rel="stylesheet" type="text/css" href="/css/normalize.css"/>
<link rel="stylesheet" type="text/css" href="/css/result-light.css"/>
<style type="text/css">
</style>...
请注意,在Opera浏览器中添加了XML声明<?xml version="1.0"?>
。有没有办法阻止Opera添加XML声明?或者如何删除XML声明?我想过使用substring
,但它并不是一个优雅的解决方案。
答案 0 :(得分:1)
那么,此时你所拥有的是一个字符串,所以使用字符串方法就像它得到的那样优雅:)
我不知道有任何其他方法可以做到。
答案 1 :(得分:0)
此问题仅适用于非IE浏览器。使用documentElement解决方案。
xmlData = jQuery(xmlData);
var oSerializer = new XMLSerializer();
if (typeof xmlData[0].documentElement !== 'undefined') {
var xmlString = oSerializer.serializeToString(xmlData[0].documentElement);
} else {
var xmlString = oSerializer.serializeToString(xmlData[0]);
}