как удалить декларацию XML из Opera при использовании XMLSerializer - PullRequest
0 голосов
/ 12 декабря 2011

в 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>...

УведомлениеXML декларация <?xml version="1.0"?> добавлена ​​в браузер Opera.Есть ли способ остановить Opera от добавления декларации XML?или как можно удалить декларацию XML?Я думал об использовании substring, но это не совсем элегантное решение.

Ответы [ 2 ]

1 голос
/ 04 января 2012

Что ж, на данный момент у вас есть строка, так что использование строковых методов настолько элегантно, насколько это возможно:)

Я не знаю другого способа сделать это.

0 голосов
/ 28 ноября 2013

Эта проблема только в браузере без 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]);
}
...