2016-04-27 23 views
0

私は自分のXML文書を自分のXSLスタイルシートでテストリンクしようとしていましたが、それはXML文書の情報を表示してテンプレートを無視するためです。XMLドキュメントにXSLスタイルシートが登録されていませんか?

movies.xmlドキュメント

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="movies.xsl"?> 

<movieRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns="http://www.example.com/comicbooks/movies/ns" 
     xsi:schemaLocation="http://www.example.com/comicbooks/movies/ns movies.xsd"> 

    <movie> 

     <movieTitle>Captain America: Civil War</movieTitle> 
     <genre>Action, Adventure, Sci-Fi</genre> 
     <rating>8.13</rating> 
     <length>147 min</length> 
     <releaseDate>May 6th, 2016</releaseDate> 

    </movie> 

</movieRoot> 

movies.xslスタイルシート(私も同様に適用され、テンプレートは= "映画" を選択しようとしました)

<?xml version="1.0" encoding="UTF-8" ?> 

<xsl:stylesheet version="1.0" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:template match="/"> 

     <html> 
     <link ref="stylesheet" type="text/css" href="movies.css" /> 
     <body> 
      <xsl:apply-templates /> 

     </body> 
     </html> 


    </xsl:template> 

    <xsl:template match="movie"> 

     <p>Movies</p> 

    </xsl:template> 

</xsl:stylesheet> 

movies.css

body {color:blue;} 

答えて

0

xmlファイルにはデフォルトの名前空間があります。
この名前空間をxslファイルで宣言して使用する必要があります。

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:ns="http://www.example.com/comicbooks/movies/ns"> 


<xsl:template match="ns:movie"> 

また、あなたは、タイプミスがあります:refの代わりrelを。 XSLファイルは次のようになります。変更した後

<link rel="stylesheet" type="text/css" href="movies.css" /> 

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:ns="http://www.example.com/comicbooks/movies/ns"> 

    <xsl:template match="/"> 

     <html> 
     <link rel="stylesheet" type="text/css" href="movies.css" /> 
     <body> 
      <xsl:apply-templates /> 
     </body> 
     </html> 

    </xsl:template> 

    <xsl:template match="ns:movie"> 

     <p>Movies</p> 

    </xsl:template> 

</xsl:stylesheet> 

その他のファイルは変更されません。

+0

私は残念ながら同じ問題を抱えているようです –

+0

@TimBob - あなたはどのようにそれを実行しますか?私はFirefoxでテストしました - それは動作します。 –

+0

私は同じブラウザを使いました。おそらく私は適切な変更を加えなかったでしょう。 –

関連する問題