Xslt 第一次出现节点时的xsl打印头
我有一个简单的任务,我找不到解决方案,而且我对xsl还很熟悉,不知道如何去做。我有一个节点列表,在第一次出现节点时,我想打印一个标题。例如: xml摘录Xslt 第一次出现节点时的xsl打印头,xslt,printing,header,Xslt,Printing,Header,我有一个简单的任务,我找不到解决方案,而且我对xsl还很熟悉,不知道如何去做。我有一个节点列表,在第一次出现节点时,我想打印一个标题。例如: xml摘录 <data> <subdata1>value1.1</subdata1> <subdata2>value1.2</subdata2> </data> <data> <subdata1>value2.1</subdata1
<data>
<subdata1>value1.1</subdata1>
<subdata2>value1.2</subdata2>
</data>
<data>
<subdata1>value2.1</subdata1>
<subdata2>value2.2</subdata2>
</data>
<data>
<subdata1>value3.1</subdata1>
<subdata2>value3.2</subdata2>
</data>
在第一个“数据”节点之前会有一些东西,所以我不认为我可以提前打印出来。我在考虑一个带有标志的if语句,该标志将在它第一次找到数据时设置,但我的实现不起作用。有什么办法吗
谢谢 此转换:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="data[1]">
<xsl:text>subdata1	subdata2</xsl:text>
<xsl:apply-templates select="../data" mode="process"/>
</xsl:template>
<xsl:template match="data" mode="process">
<xsl:value-of select="concat('
', subdata1, '	',subdata2)"/>
</xsl:template>
<xsl:template match="data"/>
</xsl:stylesheet>
说明:适当使用模板和模式
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="data[1]">
<xsl:text>subdata1	subdata2</xsl:text>
<xsl:apply-templates select="../data" mode="process"/>
</xsl:template>
<xsl:template match="data" mode="process">
<xsl:value-of select="concat('
', subdata1, '	',subdata2)"/>
</xsl:template>
<xsl:template match="data"/>
</xsl:stylesheet>
<t>
<data>
<subdata1>value1.1</subdata1>
<subdata2>value1.2</subdata2>
</data>
<data>
<subdata1>value2.1</subdata1>
<subdata2>value2.2</subdata2>
</data>
<data>
<subdata1>value3.1</subdata1>
<subdata2>value3.2</subdata2>
</data>
</t>
subdata1 subdata2
value1.1 value1.2
value2.1 value2.2
value3.1 value3.2