Javascript 更改SVG/XML中的第一个元素

Javascript 更改SVG/XML中的第一个元素,javascript,xml,svg,Javascript,Xml,Svg,我有一个svg文件,例如以以下内容开头: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <!-- Généré par Microsoft Visio 11.0, SVG Export

我有一个svg文件,例如以以下内容开头:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<!-- Généré par Microsoft Visio 11.0, SVG Export, v1.0 A_QI_QCompliance_ICompliance_AAfr.svg Compliance -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
        xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="11.6872in" height="8.79076in"
        viewBox="0 0 841.476 632.935" xml:space="preserve" color-interpolation-filters="sRGB" class="st36">

使用javascript,我想更改第一行:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

进入:

<?xml-stylesheet version="1.0" encoding="UTF-8" standalone="no" type="text/css" href="../../style/css/customSVG.css"?> 

我不知道如何访问此元素/节点以更改其标记名/属性

firstChild
标记,
documentElement
..
标记

我无法创建xml或?xml类型的元素

var nodeDoctype = document.implementation.createDocumentType(
 'xml',
 'xml-stylesheet version="1.0" encoding="UTF-8" standalone="no" type="text/css" href="../../style/css/customSVG.css'
);
if(document.doctype) {
    document.replaceChild(nodeDoctype, document.doctype);
} else {
    document.insertBefore(nodeDoctype, document.childNodes[0]);
}
根据您的评论更新:

可以使用JS更改doctype以实现兼容性查看(如下所示:),但这是一个非常讨厌的攻击,不推荐使用。理想情况下,您可以在服务器端执行此操作。因此,请使用doctype js参数,然后重新加载页面:

window.location = window.location+"?doctype=newdoctype"

这将导致页面重新加载,这可能不适合您,但这是最安全的方法

createDocumentType函数中似乎缺少一个属性。难道不是要改变标签而不是标签吗?