【问题标题】:Webkit doesn't provide an XML declaration with serializeToStringWebkit 不提供带有 serializeToString 的 XML 声明
【发布时间】:2013-07-16 01:42:33
【问题描述】:

以下代码应该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);

但是,在 下,它删除了 XML 声明:

这里是a demo(试试)。

我发现a bug on Webkit 似乎与这个故事相符。

如何确保我的newString 具有与string 开头相同的 XML 声明?

【问题讨论】:

    标签: webkit safari air javascript xml webkit xmlserializer


    【解决方案1】:

    您可以检查是否存在声明,如果没有找到,则显式添加:

    if(newString.indexOf('<?xml') !== 0)
        newString = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n' + newString;
    

    这里是an updated demo

    或者,使用输入字符串的声明:

    if(newString.indexOf('<?xml') !== 0)
        newString = string.substring(0, string.indexOf('\n')) + newString;
    

    Another demo.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 2011-01-08
      • 2019-01-24
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      相关资源
      最近更新 更多