的问题 的
输入:
<root>
<node attr="nodeAttr">
<node attr2="childNodeAttr">
<node attr3="childChildNodeAttr">
<item>...</item>
...
</node>
</node>
</node>
</root>
预期产出:
<root>
<node attr="nodeAttr" attr2="childNodeAttr" attr3="childChildNodeAttr">
<item>...</item>
...
</node>
</root>
或者
<root>
<node>
<attr>nodeAttr</attr>
<attr2>childNodeAttr</attr2>
<attr3>childChildNodeAttr</attr3>
<item>...</item>
...
</node>
</root>
的尝试 的
<xsl:for-each select="/root/node">
<xsl:variable name="nodeAttribute" select="@attr" />
<xsl:for-each select="/root/node/node">
<xsl:variable name="nodeAttribute2" select="@attr2" />
<xsl:for-each select="/root/node/node/node">
<tr>
<td>
<xsl:value-of select="$nodeAttribute"></xsl:value-of>
</td>
<td>
<xsl:value-of select="$nodeAttribute2"></xsl:value-of>
</td>
<td>
<xsl:value-of select="@attr3"></xsl:value-of>
</td>
</tr>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
的详情 的
我对XSLT很新,并且无法弄清楚如何使用它。显然,我的上述尝试并没有多大意义。
我已经阅读了几个例子,但是我遇到了更复杂的例子。除了W3C和w3school还有其他可以帮助我学习的好网站吗?
谢谢!
答案 0 :(得分:2)
你可以从这个样本中激励自己:
<xsl:template match="root">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="root/node">
<xsl:copy>
<xsl:copy-of select="descendant-or-self::node/@*" />
<xsl:copy-of select="descendant::item" />
</xsl:copy>
</xsl:template>