我是XSLT的新手,我有特殊要求。我的XML文件如下所示。
<results>
<result>
<Price>
<LinePrices>
<ProductId>ProductId:1000</ProductId>
<Uom>KG</Uom>
<Quantity>0</Quantity>
</LinePrices>
<LinePrices>
<ProductId>ProductId:1002</ProductId>
<Uom>EACH</Uom>
<Quantity>0</Quantity>
</LinePrices>
</Price>
</result>
<result>
<productlist>
<productid>1000</productid>
<relevance>0.9</relevance>
<sponsored>0</sponsored>
</productlist>
<productlist>
<productid>1001</productid>
<relevance>0.8</relevance>
<sponsored>0</sponsored>
</productlist>
</result>
</results>
我必须编写XSLT键来匹配模式。我已经为产品清单写了密钥,如下所示。
<xsl:key name="productsIdForProduct" match="productlist" use="productid" />
以类似的方式,我试图为LinePrices写密钥,如下所示。
<xsl:key name="productsIdPrice" match="result/LinePrices" use="ProductId" />
然而,这会返回&lt; ProductId:1000&#39;在使用属性。我正试图修剪ProductId:&#39;来自use属性值。如何编写修剪表达式以提取&#39; 1000&#39;来自&lt; ProductId:1000&#39;在XPATH表达式中?
答案 0 :(得分:2)
只需使用substring-after():
substring-after(ProductId,':')