2017-01-21 10 views
0

したがって、このxslファイルと3つの異なる "xsl:value-of select"異なるXPathはさえそれらを分離しようとしている破断線と同じ行に私を与えるXSLT - 3つの異なるxpathを使用した3つの異なる値の選択の結果が同じ行に出力される理由

XSLコード:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" /> 


    <xsl:template match="/"> 
     <html> 
      <head> 
       <title></title> 
      </head> 
      <body> 
       <xsl:value-of select="//Utilizador[@id= 'u_03' ]/Username"/><br/> 

       <xsl:value-of select="count(//Video[contains(@uti_id, 'u_03')])"/><br/> 

       <xsl:value-of select="count(//Comentario[contains(@uti_id, 'u_03')])"/><br/> 
      </body> 
     </html> 
    </xsl:template> 
</xsl:stylesheet> 

と出力.xhtml:

<?xml version="1.0" encoding="UTF-8"?><html> 
<head> 
<title/> 
</head> 
<body>carlitos<br/>3<br/>0<br/> 
</body> 
</html> 
+1

結果のHTMLコードを表示すると、ブラウザによって 'br'要素が改行としてレンダリングされます。 HTMLコードそのものを挿入すると、 'br'要素を囲むテキストノードが変更されるため、HTMLコード自体に改行はありません。あなたが本当にそれらを望むなら、リテラルテキストとして改行文字を追加することによってそれらを明示的に求めなければなりません。 –

+0

@ michael.hor257k " &nl;"を使用しようとしましたが、ブラウザをチェックしても1行で表示されます。 新しいコード出力.xhtml: '<?xmlのバージョン= "1.0" エンコード= "UTF-8"> ちょっと カルリートス ' – Matos

+0

てみてください' '(UNIX)または ' '(Mac)または ' ' (Windows)。 –

答えて

1

必ずに<xsl:output method="html"/>を使用してくださいを作成するxt/html出力。 XHTMLを作成したい場合は、outputメソッド= "xml"を使用できますが、result要素にはXHTMLネームスペースhttp://www.w3.org/1999/xhtmlが必要です。そうしないと、ブラウザはHTMLを認識しません。