xml - 如何使用 XSLT 修改 XML 属性?

标签 xml xslt

我想知道 XSLT 中是否有办法修改/添加属性值。

现在我只是替换属性值:

<a class="project" href="#">
  <xsl:if test="new = 'Yes'">
    <xsl:attribute name="class">project new</xsl:attribute>
  </xsl:if>
</a>

但我不喜欢第 2 行中重复 project。是否有更好的方法来做到这一点,例如简单地添加 new 在属性末尾?

感谢您的帮助!

最佳答案

您可以输入if里面attribute而不是相反:

<a href="#">
  <xsl:attribute name="class">
    <xsl:text>project</xsl:text>
    <xsl:if test="new = 'Yes'">
      <xsl:text> new</xsl:text>
    </xsl:if>
  </xsl:attribute>
</a>

<xsl:attribute>可以包含任何有效的 XSLT 模板(包括 for-each 循环、应用其他模板等),唯一的限制是实例化此模板只能生成文本节点,而不是元素、属性等。属性值将是所有这些文本节点的串联。

关于xml - 如何使用 XSLT 修改 XML 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14093943/

相关文章:

c# - "Data at the Root Level is invalid"与 LoadXml

xslt - 代码 xslt 错误 : File not found

xslt - 使用 xsl :call-template 优化转换模板(使用外部 XML)

java - 无法打开 ServletContext 资源 [/templates/show.xsl]

xml - XSLT 变量设置和在表达式中的使用

C# 从 StringBuilder 解析 Xml

xml - 使用scala解析xml文件

xml - 比较/对比 HTML、XHTML、XML 和 HTML5

java - @EnableHypermediaSupport 的 XML 配置等效项

xslt - 在 XSLT 中使用 format-date() 方法时出现编译错误