2012-05-17 3 views
0

je le fichier XML exemple suivant:XML internationalisés et styles XSL

<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet type='text/xsl' href='test.xsl'?> 
<words> 
<word xml:lang="en">English</word> 
<word xml:lang="pl">Polish</word> 
<word xml:lang="pl">Polish2</word> 
<word xml:lang="en">English2</word> 
</words> 

Je suis en train de le style si seul l'affichage des mots anglais. Cependant quand j'essaye quelque chose comme ceci:

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
    <xsl:template match="/"> 
     <html> 
      <body> 
       <xsl:for-each select="words/word"> 
        <b><xsl:value-of select=".[lang('en')]" /></b><br /> 
       </xsl:for-each> 
      </body> 
     </html> 
    </xsl:template> 
</xsl:stylesheet> 

Rien ne revient. Je pense que je suis sur la bonne voie parce que si je

<b><xsl:value-of select="." /></b><br /> 

tous reviennent, mais je ne suis pas sûr comment faire un sélecteur sur une langue particulière.

Répondre

1

Essayez avec:

<xsl:for-each select="words/word[@xml:lang = 'en']"> 
    <b><xsl:value-of select="./text()" /></b><nr/> 
</xsl:for-each> 
+1

Merci de me mettre sur la bonne voie. C'est aussi l'endroit pour mettre la fonction lang() ...

+0

Oui, c'est aussi l'endroit pour ça. Je ne savais pas à propos de la fonction lang() :) – AJPerez