2012-05-17 78 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