私はXSLTを初めて使用しています。値に基づいてXSLT属性が変更される
私は現在、以下のフォーマットの多数のコピーで構成されていXML持っている:私は使命を帯びてきた何
<item:items>
<item:item action="ingest" id="USAUS868509">
<item:itemID>1157245</item:itemID>
<item:spotType>commercial</item:spotType>
</item:item>
<item:items>
は、id属性の値を交換することです。私はコードの数値部分に基づいてこの値を変更する必要があります。値が850000より大きい場合は、形式をUSA868509に変更する必要があります。値が850000より小さい場合は、id値を変更して数値のみを含めるようにします。 XMLの残りの値はまったく同じになるはずです。
私は現在、以下のXSLTを持っている:
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//items/item[@id]">
<xsl:choose>
<xsl:when test="substring(id,5) >= 845986">
<xsl:attribute name="id">
<xsl:value-of select="substring(id,5)"/>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="id">
<xsl:value-of select="id"/>
</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
私はトラブルXSLTは変数のためにループしませんので、私は変更したい値を特定するが生じています。このロジックを持つように私のXSLTを変更する方法はありますか?
名前の要素が '項目であることに注意してください:items'は、式' items'によって選択することができません。ネームスペースの宣言とXSLTでの接頭辞の使用法を読んでおく必要があります。 –