以下代码应alert
与输入完全相同:
var string = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Target="media/image3.png" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Id="rId8"/></Relationships>';
var xml = new window.DOMParser().parseFromString(string, 'text/xml');
// Manipulate the DOM / do something...
var newString = new XMLSerializer().serializeToString(xml);
alert(newString);
但是,在webkit下,它会删除XML声明:
我发现a bug on Webkit似乎与这个故事有关。
如何确保我的newString
具有与string
开始时相同的XML声明?
答案 0 :(得分:0)
您可以检查是否存在声明,如果找不到声明,则显式添加一个声明:
if(newString.indexOf('<?xml') !== 0)
newString = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n' + newString;
或者,使用输入字符串的声明:
if(newString.indexOf('<?xml') !== 0)
newString = string.substring(0, string.indexOf('\n')) + newString;