【发布时间】:2017-04-04 16:44:44
【问题描述】:
我有这个 xml,并且 xslt 转换有问题:
<start>
<row>
<xxx Caption="School1"></xxx>
<yyy Caption="Subject1"></yyy>
<zzz></zzz>
</row>
<row>
<xxx Caption="School2"></xxx>
<yyy Caption="Subject2"></yyy>
<zzz></zzz>
</row>
</start>
Xsl 转换是这样的:
<xsl:stylesheet>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<schools>
<xsl:apply-templates select="//row/*" />
</schools>
</xsl:template>
<xsl:template match="//row/*">
<school>
<xsl:if test="name()='xxx'">
<name>
<xsl:value-of select="@Caption"/>
</name>
</xsl:if>
<xsl:if test="name()='yyy'">
<subject>
<xsl:value-of select="@Caption"/>
</subject>
</xsl:if>
</school>
</xsl:template>
</xsl:stylesheet>
xsl 转换给出了这个结果,这并不是我想要的结果:
<schools>
<school>
<name>School1</name>
</school>
<school>
<subject>Subject1</subject>
</school>
<school />
<school>
<name>School2</name>
</school>
<school>
<subject>Subject2</subject>
</school>
<school />
</schools>
我希望结果是这样的:
<schools>
<school>
<name>School1</name>
<subject>Subject1</subject>
</school>
<school>
<name>School2</name>
<subject>Subject2</subject>
</school>
</schools>
姓名和学科元素应该在同一个学校元素内。
请帮助我找到更好的解决方案。
【问题讨论】:
标签: xslt