Have an XML code as follows (partially):
<ItemMaster>
<Classification>
<Codes>
<Code listID="Item Types" sequence="1">Cost</Code>
<Code listID="Item Groups" sequence="2">4ET</Code>
<Code listID="MRO Classes" sequence="3">*</Code>
</Codes>
</Classification>
</ItemMaster>
I want to change the Item Types from "Cost" to "Purchased". So it will look like this :
<ItemMaster>
<Classification>
<Codes>
<Code listID="Item Types" sequence="1">Purchased</Code>
<Code listID="Item Groups" sequence="2">4ET</Code>
<Code listID="MRO Classes" sequence="3">*</Code>
</Codes>
</Classification>
</ItemMaster>
I want to use the "choose" function, because I need to change the value based on a condition, such as IF the Item Groups is 4ET, then change the Item Types to change to Purchased
usually I can match the element. But now, since the data is inside an attribute, I don't know how to match and change it
UPDATE: I tried these codes
</xsl:template>
<xsl:template
match="//my:ItemMaster/my:Classification/my:Codes/my:Code[1]">
<xsl:variable name="ItemGroup"
select="//my:ItemMaster/my:Classification/my:Codes/my:Code[@listID='Item Groups']"/>
<xsl:choose>
<xsl:when test="($ItemGroup='4ET')">
<xsl:element name="Code[1]">
<xsl:value-of select="'Purchased'" />
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="Code[1]">
<xsl:value-of select="'Cost'" />
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
And then I got this result :
<Classification>
<Codes>
Stock
<Code listID="Item Groups" sequence="2">4ET</Code>
<Code listID="MRO Classes" sequence="3">*</Code>
</Codes>
</Classification>
So, it is still not like what I needed.
Please help me :( Thank you for the kind help.