Google chrome xsl:template&;firefox和;铬

Google chrome xsl:template&;firefox和;铬,google-chrome,firefox,xslt,svg,namespaces,Google Chrome,Firefox,Xslt,Svg,Namespaces,我有一个问题似乎与svg名称和空格有关。一种方法适用于FireFox,另一种方法适用于Chrome,但两种方法都不适用。我已尝试添加xmlns=”http://www.w3.org/2000/svg“,但这两种方式都不会改变结果 在下面的模板中,“use”和“text”标记的前缀为“svg”:。这在FireFox中有效,但不适用于Chrome。如果我删除了“svg:”前缀,那么它在Chrome中有效,但在FireFox中无效 有没有一种方法可以同时适用于两者 <?xml versi

我有一个问题似乎与svg名称和空格有关。一种方法适用于FireFox,另一种方法适用于Chrome,但两种方法都不适用。我已尝试添加xmlns=”http://www.w3.org/2000/svg“,但这两种方式都不会改变结果

在下面的模板中,“use”和“text”标记的前缀为“svg”:。这在FireFox中有效,但不适用于Chrome。如果我删除了“svg:”前缀,那么它在Chrome中有效,但在FireFox中无效

有没有一种方法可以同时适用于两者

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml"       xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<xsl:output method="html" encoding="UTF-8" indent="no"/>

<xsl:template name="attribute-header">
 <svg:use xlink:href="#attribute-value-section-banner" x="{$location-x}" y="{$banner-y}"/>
 <svg:text class="attribute-label-text" x="{$center-line}" y="{$label-y}">


我写了两个测试用例,一个是使用样式表和
xsl:output method=“xml”
,第二个是使用样式表和
请发布足够的代码(xml+XSLT),使我们能够重现问题。并解释“不起作用”的确切含义。对于XSLT和一个应该是(X)HTML和SVG混合的结果,您需要决定您想要什么类型的结果文档,如果您希望它是使用带有前缀的名称空间的XML,那么您应该使用
。如果您想创建允许使用HTML和SVG元素的HTML5,那么您需要确保使用不带前缀的SVG元素,因为HTML5不支持前缀和名称空间,就像您尝试使用
SVG:use
。谢谢。我不明白浏览器的输出应该是XML。我想,当人们把学校的课程混合在一起制作网页时,就会发生这种情况。无论如何,这就是神奇之处。有点离题了——我在哪里可以找到一个好的lint类型的应用程序来标记这类事情?我想我误解了xmllint和xsltproc的作用。如果您使用xsltproc进行转换,但希望将其作为文本/html供现代浏览器的HTML5解析器解析,那么您可以通过HTML5验证器运行结果文档,例如,会出现“Attribute xmlns:svg not allowed here”之类的错误。如果您直接在浏览器中使用XSLT,那么我不确定当前是否有一个好的工具,也不确定浏览器附带的各种开发人员工具的浏览器控制台是否会给出任何有用的警告或错误消息。