2016-12-23 12 views
0

XMLを持っていますが、XSLTで値を抽出しようとしています。それは動作しますが、XSLの式value-selectは最初の値 "Al Pacino"のみを返します。 <Cast>の値をすべて使用するにはどうしたらいいですか? XSLT 1.0でXML Xpath XSLノード名が同じ場合に複数の値を返します

<Questionario> 
    <Video ID="1" Titolo="Scarface"> 
    <Cast>Al Pacino</Cast> 
    <Cast>Steven Bauer</Cast> 
    <Cast>Michelle Pfieffer</Cast> 
    <Genere>azione e avventura</Genere> 
    <Sottogenere>crime action</Sottogenere> 
    <Sottogenere>Thriller</Sottogenere> 
    <Sottogenere>Gangster</Sottogenere> 

XSL

<xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> 
<xsl:template match="/"> 
     <html> 
     <head> 
      <title>Report Questionari Slow TV</title> 
     </head> 
     <body> 
      <h3>Video Visionati</h3> 
      <div> 
       <xsl:apply-templates select="//Video"> 
       </xsl:apply-templates> 

      </div> 


     <xsl:for-each select="Questionario/Video"> 

       <xsl:value-of select="@Titolo"/> 

       <xsl:value-of select="Cast"/> 

答えて

2

あなたは出力にこれをやっているCast

<xsl:value-of select="Cast"/> 

これは最初のCast要素を選択しますが、複数のものを持っています。代わりにxsl:for-eachを試してみてください

<xsl:for-each select="Cast"> 
    <xsl:value-of select="." /> 
    <br /> 
</xsl:for-each> 

また、テンプレートを使用することもできます。

<xsl:apply-templates select="Cast" /> 

あなたは、この

<xsl:template match="Cast"> 
    <xsl:value-of select="." /> 
    <br /> 
</xsl:template> 
と一致するテンプレートが必要になります
関連する問題