gpt4 book ai didi

google-chrome - xsl :template & svg namespace disagreement between firefox & chrome

转载 作者:行者123 更新时间:2023-12-04 16:57:41 25 4
gpt4 key购买 nike

我有一个问题,似乎与 svg namespace 有关。一种方式适用于 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}">

最佳答案

我写了两个测试用例,一个是 http://home.arcor.de/martin.honnen/xslt/test2015020801.xml使用样式表 http://home.arcor.de/martin.honnen/xslt/test2015020801.xslxsl:output method="xml" ,第二个是 http://home.arcor.de/martin.honnen/xslt/test2015020802.xml使用样式表 http://home.arcor.de/martin.honnen/xslt/test2015020802.xsl<xsl:output method="html" .只要输出方式是xml ,XSLT 可以生成带前缀的 SVG 元素(例如 svg:circle),我拥有的所有三个浏览器,IE 11、Firefox 和 Chrome 都可以很好地呈现 XHTML 和 SVG。在带有输出方法的第二个测试用例中 html我确保 SVG 元素没有前缀,因为 HTML5 和 HTML 4 都不支持该语法。同样,所有三个浏览器都知道如何呈现由 XSLT 以这种方式创建的 HTML 和 SVG。

因此,我假设您将 HTML 输出与 XML namespace 和前缀限定名称混合在一起,决定是否要使用 XSLT 创建 XML,就像在我的第一个示例中一样,然后您完全支持带有 namespace 语法的 XML 和 XML,或者您是否想要使用 XSLT 创建 HTML5,然后您必须坚持 HTML5 语法,该语法不支持带前缀的元素名称和仅一些预定义的属性(参见 http://www.w3.org/TR/html5/syntax.html#attributes-0)。这样你应该得到一致的结果。

关于google-chrome - xsl :template & svg namespace disagreement between firefox & chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28388064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com