0
我有这样的XML,并用XSLT问题变换:XSL:获取XML元素到另一个节点
<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>
名称和主题元素应该在同一个学校元素中。
请帮助我获得更好的解决方案。