重复的后续同级节点中第一个出现节点的Xpath
我想根据每个型号说明显示重复的后续同级节点中第一个出现节点的Xpath,xpath,xslt-1.0,Xpath,Xslt 1.0,我想根据每个型号说明显示。我的上下文节点是根级别的 <covergrp> <producttype>A</producttype> <model_description>abc</model_description> <modelnumber>7621</modelnumber> <modelnumber>7622</modelnumber> <
。我的上下文节点是根级别的
<covergrp>
<producttype>A</producttype>
<model_description>abc</model_description>
<modelnumber>7621</modelnumber>
<modelnumber>7622</modelnumber>
<producttype>B</producttype>
<model_description>XYZ</model_description>
<modelnumber>7624</modelnumber>
<modelnumber>7625</modelnumber>
<producttype>C</producttype>
<model_description>RBC</model_description>
<modelnumber>7629</modelnumber>
<modelnumber>7620</modelnumber>
</covergrp>
A.
abc
7621
7622
B
XYZ
7624
7625
C
红细胞
7629
7620
以下是一个示例,它使用一个键引用型号描述
元素之后的型号
元素:
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:key name="desc" match="modelnumber" use="generate-id(preceding-sibling::model_description[1])"/>
<xsl:template match="covergrp">
<xsl:apply-templates select="model_description"/>
</xsl:template>
<xsl:template match="model_description">
<xsl:value-of select="."/>
<xsl:text>: </xsl:text>
<xsl:apply-templates select="key('desc', generate-id())"/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="modelnumber">
<xsl:if test="position() > 1">, </xsl:if>
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
我选择了文本输出,但当然,同样的分组方法也可以应用于其他输出方法,如html
或xml
abc: 7621, 7622
XYZ: 7624, 7625
RBC: 7629, 7620