关于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>