下面是我的xml
<products>
<product>
<productid>1001</productid>
<remarks>
<title>This is remarks text of 1001</title>
</remarks>
</product>
<product>
<productid>1002</productid>
<remarks>
<title>This is remarks text of 1002</title>
</remarks>
</product>
<product>
<productid>1001</productid>
<remarks>
<title>This is remarks text of 1001</title>
</remarks>
</product>
<product>
<productid>1001</productid>
<remarks>
<title>This is another remarks text of 1001</title>
</remarks>
</product>
</products>
我需要像下面那样放
remarks/title
productid
需要取出remark
productid
1001
{
Productid:1001 备注:这是备注文本1001
Productid:1001 备注:这是1001的另一个备注文本
答案 0 :(得分:2)
此转化:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:key name="kProdById" match="product" use="productid"/>
<xsl:template match=
"product
[generate-id()
=
generate-id(key('kProdById', productid)[1])
]
">
<xsl:apply-templates
select="key('kProdById', productid)/remarks"/>
</xsl:template>
<xsl:template match="remarks">
<xsl:value-of select=
"concat('Productid : ', ../productid,
' Remark:', title, '
')"/>
</xsl:template>
<xsl:template match="product"/>
</xsl:stylesheet>
应用于提供的XML文档:
<products>
<product>
<productid>1001</productid>
<remarks>
<title>This is remarks text of 1001</title>
</remarks>
</product>
<product>
<productid>1002</productid>
<remarks>
<title>This is remarks text of 1002</title>
</remarks>
</product>
<product>
<productid>1001</productid>
<remarks>
<title>This is remarks text of 1001</title>
</remarks>
</product>
<product>
<productid>1001</productid>
<remarks>
<title>This is another remarks text of 1001</title>
</remarks>
</product>
</products>
生成想要的正确结果:
Productid : 1001 Remark:This is remarks text of 1001
Productid : 1001 Remark:This is remarks text of 1001
Productid : 1001 Remark:This is another remarks text of 1001
Productid : 1002 Remark:This is remarks text of 1002
解释:使用 Muenchian method for grouping 。
答案 1 :(得分:0)
我使用Muenchean方法将产品ID和备注组合在一起。网上有很多关于如何做到这一点的信息。
查看此问题xslt-distinct-elements-and-grouping是否为您提供了任何线索。
答案 2 :(得分:0)
使用xpath 2.0我们可以尝试这样:
distinct-values(/products/product[productid='1001']/remarks/title)