Мой xsl выдает два раза один результат? - PullRequest
0 голосов
/ 24 декабря 2010

Мой 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, я хочу получить подробную информацию о стране «ШриЛанка»Но вывод показывает два раза один и тот же результат.Можете ли вы помочь мне, как избежать этого?Заранее спасибо.

1 Ответ

2 голосов
/ 24 декабря 2010

Это потому, что первый шаблон соответствует элементу table , и у вас есть два таких элемента table в вашем XML для сопоставления. На данный момент не имеет значения, что Шри-Ланка появляется только под одним столом.

Вместо этого утверждения ....

<xsl:template match="countries/table">

Попробуйте сопоставить страны.

<xsl:template match="countries">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...