我有一个简单的javascript片段,它向xsl文档添加了exslt命名空间。但是,Chrome和Firefox处理此问题的方式有所不同。 Firefox将使用完整的
将名称空间正确地添加到根目录中 xmlns:exsl="http://exslt.org/common"
Chrome只是塞进
exsl="http://exslt.org/common"
您看到区别了吗? 'xmlns
'在后者中消失了,Chrome本身认为xslt格式不正确:在转换时它返回null!如果您输入正确的前缀,即xmlns:exsl
,然后Chrome会喜欢它。尝试使用下面的fiddle和Firefox,然后再使用Chrome,以查看区别。这是简单的代码
var styleString = '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"><div>hi</div></xsl:template></xsl:stylesheet>';
var xslDoc = (new DOMParser()).parseFromString(styleString, "text/xml");
var docRoot = xslDoc.documentElement;
a = document.createAttribute("xmlns:exsl");
a.nodeValue = "http://exslt.org/common";
docRoot.setAttributeNode(a);
var xmls1 = new XMLSerializer();
var outputXHtmlString = xmls1.serializeToString(xslDoc);
document.getElementById("content").innerText = outputXHtmlString;
答案 0 :(得分:0)
使用此
var styleString = '<xsl:stylesheet version="1.0" xmlns:xsl="w3.org/1999/XSL/Transform" xmlns:exsl="exslt.org/common"><xsl:template match="/"><div>hi</div></xsl:template></xsl:stylesheet>