我们如何根据 xslt 中的某些条件创建属性。
我的输入 xml 有一个标签:
<track external="http://mysite.com" />
or
<track local="/myfolder" />
并且在这个'track元素中出现了外部或本地属性,但没有出现任何一个,我必须将其转换为
<a xhtml:href="@external value" xmlns="http://www.w3.org/1999/xhtml" />
如果 'track' 元素出现 'extrenal' 属性或进入
<a xlink:href="@local value" xmlns="http://www.w3.org/1999/xlink" />
如果 'track' 元素出现 'local' 属性
XSLT 试过:
<a xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink">
<xsl:for-each select="child::*" >
<xsl:choose>
<xsl:when test="name()='track'">
<xsl:if test="@local">
<xsl:attribute name="xlink:href">
<xsl:value-of select="@local" />
</xsl:attribute>
</xsl:if>
<xsl:if test="@external">
<xsl:attribute name="xhtml:href">
<xsl:value-of select="@external" />
</xsl:attribute>
</xsl:if>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</a>
但是当我根据条件为“a”元素创建属性时引发异常。这在 XSLT 1.0 中不被接受,是否有任何方法可以根据 XSLT 1.0 中的某些条件为我的“a”元素显示属性。