我的xml是,
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="country1.xsl"?>
<countries>
<table name="cars">
<country name="india">
<var>Rajan</var>
<pop>90.09</pop>
<car>Audi</car>
</country>
<country name="japan">
<var>Yenhovong</var>
<pop>172</pop>
<car>Sumo</car>
</country>
</table>
<table name="personal">
<country name="china">
<var>Leee</var>
<pop>03988</pop>
<car>tass</car>
</country>
<country name="SriLanka">
<var>Samarkuma</var>
<pop>4325</pop>
<car>sasfd</car>
</country>
</table>
</countries>
我的xsl是,
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL
/Transform">
<xsl:output method="text"/>
<xsl:key name = "kkk" match = "country" use = "@name" />
<xsl:template match="countries/table">
<xsl:apply-templates select = "key('kkk','SriLanka')"/>
</xsl:template>
<xsl:template match="country">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
在我的xslt中,我想要检索'SriLanka'国家/地区的详细信息。但输出显示两倍相同的结果。你能帮我解决一下吗?提前谢谢。
答案 0 :(得分:2)
这是因为第一个模板在表元素上匹配,并且您的XML中有两个这样的表元素要匹配。在这一点上斯里兰卡只出现在一张桌子下面并没有什么不同。
而不是这句话......
<xsl:template match="countries/table">
尝试在国家/地区进行匹配。
<xsl:template match="countries">