繁体   English   中英

使用XMLSerializer时如何从Opera中删除XML声明

[英]how to remove the XML Declaration from Opera when using XMLSerializer

在Opera中,当我序列化xml文档时,它将返回添加了XML声明的字符串。 在Firefox和Chrome中不会发生这种情况,我希望Opera返回与Firefox和Chrome相同的结果。

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但这并不是一个很好的解决方案。

好了,此时您拥有的是一个字符串,因此使用字符串方法就变得很优雅:)

我不知道有其他方法可以做到。

此问题仅在非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]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM