我正在使用XSLT搜索特定元素/属性组合,以及(1)将元素重命名为搜索属性值(2)添加包含原始元素名称的属性,以及(3)删除搜索属性。我有两个不同的搜索元素,它们具有相同的属性名称,但希望使它成为单个OR匹配
<xsl:template match="Values/Value|MultiValue">
有没有办法去捕捉&#34;匹配的值是为了避免必须在下面的XSLT中为StepClass属性提供特定的属性值?我尝试了价值,但这就是抓住元素值。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<!-- Change Values/Value value of AttributeID -->
<xsl:template match="Values/Value">
<xsl:element name="{@AttributeID}">
<xsl:attribute name="StepClass">Value</xsl:attribute>
<xsl:apply-templates select="@*|node()"/>
</xsl:element>
</xsl:template>
<!-- Change MultiValue to value of AttributeID -->
<xsl:template match="MultiValue">
<xsl:element name="{@AttributeID}">
<xsl:attribute name="StepClass">MultiValue</xsl:attribute>
<xsl:apply-templates select="@*|node()"/>
</xsl:element>
</xsl:template>
<!--empty template suppresses this attribute-->
<xsl:template match="@AttributeID" />
答案 0 :(得分:0)
有没有办法去捕捉&#34;匹配的价值
否(至少不容易),但有一种方法可以捕获匹配元素的名称:
<xsl:attribute name="StepClass">
<xsl:value-of select="name()" />
</xsl:attribute>