我有一个XML文档,我想使用XSLT来更改数据的格式。
XML值
<UniqueName>XXX</UniqueName>
<Parent>XYZ</Parent>
<Name>ABC</Name>
如果Uniquename中有XXX,我想将Uniquename值更改为123
我尝试了以下但是它似乎在XML中添加了另一列而不是将XXX转换为123
<th style="text-align:left">UniqueName</th>
<th style="text-align:left">Parent</th>
<th style="text-align:left">Name</th>
</tr>
<xsl:for-each select="units/row">
<tr>
<Review>
<td><xsl:value-of select="UniqueName"/></td>
<xsl:if test="UniqueName= 'XXX'"><text>123</text>
</xsl:if>
</Review>
我需要更改以获取我想要的值
答案 0 :(得分:1)
正如您的标题所示,您需要使用xsl:choose
,而不是xsl:if
。试试这种方式:
<xsl:for-each select="units/row">
<tr>
<td>
<xsl:choose>
<xsl:when test="UniqueName='XXX'">
<xsl:text>123</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="UniqueName"/>
</xsl:otherwise>
</xsl:choose>
</td>
<!-- more cells ... -->
</tr>
</xsl:for-each>
请注意<text>
和<xsl:text>
之间的区别。而且我不确定为什么你需要在表格中间使用<Review>
元素。