我有以下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查询中动态执行此操作,而无需定义新变量。
答案 0 :(得分:0)
最终实施:
//products/node()[name() = $productCode]/description