我有以下XML结构:
<products>
<C8TJM>
<code>C8TJM</code>
<name>Product</name>
<description>Product description</description>
</C8TJM>
<D75KF>
<code>D75KF</code>
<name>Product</name>
<description>Product description</description>
</D75KF>
<_89TJX>
<code>89TJX</code>
<name>Product</name>
<description>Product description</description>
</_89TJX>
</products>
每个子节点代表一个产品,节点的名称是产品代码。因为XML不允许节点以数字开头,所以会自动在节点名称中添加下划线。
我事先知道产品代码。
我必须编写一个xpath查询到:
-
首先检查产品代码是否以数字开头,如果以数字开头,
然后在其前面加上下划线;
-
在树上搜索
产品代码和获取描述。
以后编辑
已成功写入此变量定义:
<xsl:variable name="prefixedProductCode">
<xsl:choose>
<xsl:when test="contains('0123456789', substring($productCode, 1, 1))">
<xsl:value-of select="concat('_', $productCode)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$productCode" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
但我想在XPath查询中即时执行,而不必定义新的变量。