现在我正在尝试从XSL文件中选择XML文件中的数据,保持所有字段的唯一性(这样我就不会得到任何东西的倍数)。但是,虽然这有效,但某些标题名称认为它们是子标题名称,出于某种原因。
XML代码:
<Response>
<Guidelines>
<Guideline>
<GuidelineName> Header goes here </GuidelineName>
<GuidelineSubname> First </GuidelineSubname>
</Guideline>
<Guideline>
<GuidelineName> Header goes here </GuidelineName>
<GuidelineSubname> Second </GuidelineSubname>
</Guideline>
<Guideline>
<GuidelineName> Header goes here </GuidelineName>
<GuidelineSubname> Third </GuidelineSubname>
</Guideline>
</Guidelines>
</Response>
XSL代码:
<xsl:for-each select="Response/Guidelines/Guideline">
<h3> <xsl:value-of select="GuidelineName[not(.=preceding::*)]" /> </h3>
<ul>
<li> <xsl:value-of select="GuidelineSubname" /> </li>
</ul>
</xsl:for-each>
如果前面的命令不存在,它可以工作,但由于它没有过滤掉并制作唯一的标题,所以它变得非常混乱。
我想要发生什么:
-First
-Second
-Third
会发生什么:
- 第二个 - 首先
如您所见,其中一个标题不存在,导致副标题名称错误。
-Third
答案 0 :(得分:0)
<xsl:template match="Guideline">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="GuidelineName">
<h3><xsl:apply-templates/></h3>
</xsl:template>
<xsl:template match="GuidelineSubname">
<ul><li><xsl:apply-templates/></li></ul>
</xsl:template>