【问题标题】:Change value of SVG based on XPath in XSLT在 XSLT 中基于 XPath 改变 SVG 的值
【发布时间】:2021-08-22 08:33:50
【问题描述】:

我正在尝试使用 XSLT 从 XML 生成 HTML,并且我想在每个页面上包含 SVG,并使用我使用 XPath 从所述 XML 文档中选择的适当颜色。

但是我在应用模板时遇到了问题,因为我不知道如何将 xsl:variable 传递给它。

<xsl:copy-of select="document(concat(cfg:a/cfg:b, cfg:c))"/>

此代码将 SVG 文件放入我生成的 HTML 中。 我想像这样更改一些 SVG

<rect x="1" y="163"
      width="119.5" height="52"
      rx="5" fill="$modsVar"/>

所以 modsVar 的值会根据我的 XPath 而改变。那可能吗?谢谢!!!

【问题讨论】:

  • 请分享svg-source
  • SVG 是从keyboard-layout-editor.com 生成的代码我基本上是在尝试根据我的 XML 中的十六进制值为各个键着色。这是代码本身:pastebin.com/zmmNHn5Q 我正试图用 XSLT 替换 {$barvaModsVar} 但我对该主题的了解有限。
  • 不清楚您在哪个上下文中使用 XSLT,您使用哪个版本,是否显示带有 $modsVar 的 sn-p 或带有 {$barvaModsVar} 的注释是尝试使用 XSLT 变量引用还是来自另一种语言的一些片段。因此,即使您的目标是解决您链接到的大文件的问题,也可以尝试使用小而完整的 XML、XSLT 示例、您想要的输出以及您获得的输出,以及您使用的 XSLT 处理器。

标签: xml svg xslt xpath


【解决方案1】:

如果你有例如&lt;xsl:param name="modsVar" select="foo/bar/baz"/&gt;&lt;xsl:variable name="modsVar" select="foo/bar/baz"/&gt; 在您的 XSLT 中,那么文字结果元素 &lt;rect x="1" y="163" width="119.5" height="52" rx="5" fill={"$modsVar}"/&gt; 将创建一个 rect 元素,其中 fill 属性的值取自绑定到 modsVar 的值,即评估XPath 表达式foo/bar/baz.

【讨论】:

    猜你喜欢
    • 2020-06-16
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 2022-01-04
    • 1970-01-01
    相关资源
    最近更新 更多