2012-05-17 46 views
0

我有下面的示例XML文件:国际化XML和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> 

我想它的样式所以只有英文单词显示。然而,当我尝试这样:

<?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> 

没有回来。我觉得我在正确的轨道上,因为如果我有

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

他们都回来了,但我不能确定如何在一个特定的语言做了选择。

回答

1

尝试用:

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

谢谢你把我在正确的轨道上。这也是放置lang()函数的地方...

+0

是的,那也是它的地方。我只是不知道lang()函数:) – AJPerez