xsl如何遍历嵌套节点
本帖最后由 QQ154485585 于 2013-08-20 13:44:28 编辑 如何遍历嵌套的所有<m>节点,现在只能得到第一层子节点,方式有点别扭,哪位有更好的方法?
xml如下:
<?xml version="1.0" encoding="utf-8"?>
<ms>
<m n="腾讯">
<m n="财经">
<m n="黄金" u="http://finance.qq.com/l/gold/hjzx/index.htm">
<t>
<s><title></s>
<e></title></e>
</t>
<b>
<s i="0"><div id="Cnt-Main-Article-QQ" bossZone="content"></s>
<e i="0"><div class="page-Article-QQ" id="ArtPLink" bossZone="artPage"></e>
</b>
</m>
</m>
</m>
<m n="新浪">
<m n="科技"/>
<m n="财经"/>
</m>
</ms>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" xmlns:user="qin">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="ms">
<ul id="Ci1" class="Ts">
<xsl:for-each select="m">
<li><xsl:value-of select="@n"/><xsl:if test="not(@u)">
<xsl:apply-templates select="m"/>
</xsl:if>
</li>
</xsl:for-each>
</ul>
</xsl:template>
<xsl:template match="m">
<ul><xsl:for-each select="."><li><xsl:value-of select="@n"/></li></xsl:for-each></ul>
</xsl:template>
</xsl:stylesheet>