首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

关于xsl输入结果的疑问解决思路

2012-02-27 
关于xsl输入结果的疑问xml内容?xmlversion 1.0 ??xml-stylesheettype text/xsl href 287.xsl

关于xsl输入结果的疑问
xml内容
<?xml   version= "1.0 "     ?>  
<?xml-stylesheet   type= "text/xsl "   href= "287.xsl "   ?>
<AAA   >  
                <BBB   ooo   =   "111 "   ppp   =   "222 "   >  
                          <CCC> c1   </CCC>  
                          <CCC> c2   </CCC>  
                </BBB>  
                <BBB   ooo   =   "555 "   ppp   =   "666 "   >  
                          <DDD> d1   </DDD>  
                          <DDD> d2   </DDD>  
                </BBB>  
        </AAA>

xsl内容
<xsl:stylesheet   xmlns:xsl   =   "http://www.w3.org/1999/XSL/Transform "   version   =   "1.0 "   >  
<xsl:output   method= "xml "   version= "1.0 "   omit-xml-declaration= "yes "   indent= "no "   />

        <xsl:template   match   =   "* "   >  
        <xsl:value-of   select= ". "   />  
        <xsl:apply-templates   />
        </xsl:template>  

</xsl:stylesheet>  

其输出结果c1   c2   d1   d2   c1   c2   c1   c1   c2   c2   d1   d2   d1   d1   d2   d2  
问一下这里的c1   c1   c2   c2   跟d1   d1   d2   d2
这怎么理解啊,谢谢了
不是配匹到 <CCC> c1   </CCC>   输出一个c1,怎么样会多出一个c1呢

[解决办法]
加一段
<xsl:template match= "text() ">
</xsl:template>
再试一下,就明白了。
[解决办法]
首先,看这句话: <xsl:apply-templates /> 因为没有定义select,所以他适用与所有,这也是为什么返回结果出现两倍的原因。

所以,先把xsl改为:
<xsl:template match = "AAA/BBB " >
<xsl:value-of select= ". " />
</xsl:template>

热点排行