我有一个像这样重复的xml树 -
<xml>
<head>this is a sample xml file</head>
<item><color>yellow</color><color>red</color></item>
<item><color>blue</color></item>
<item><color>grey</color><color>red</color><color>blue</color></item>
</xml>
如您所见,每个项目可以有不同数量的颜色标记。
我希望只获得前两项的所有颜色标签。
答案 0 :(得分:5)
<xsl:template match="xml">
<xsl:apply-templates select="item[position() < 3]/color" />
</xsl:template>
<xsl:template match="color">
<xsl:copy-of select="." />
</xsl:template>
应用于您的XML,产生:
<color>yellow</color>
<color>red</color>
<color>blue</color>
答案 1 :(得分:0)
一种可能的方法来获取技术上完全正确的项目,并且绝不会在命名空间,未来需求或模板构造方面对文档结构做出假设,这很简单:
/xml/item[position() < 3]/color
答案 2 :(得分:0)
试试这个......
/xml/item[ position() < 3 ]/color
答案 3 :(得分:-1)
为每个项添加一个序数字段,然后选择前两个。