verenice: XSL / Bildausgabe...

Beitrag lesen

Hallo,
ich möchte gern bestimmte Bilder ausgeben.
Dazu habe ich einmal versucht bei der Bildausgabe eine Variable mit dem Wert zu übergeben.
Leider funktioniert dies überhaupt nicht.
Dann habe ich direkt versucht genau ein bestimmtes Bild aus dem XML-File herauszuholen. Dies hat leider auch nicht funktioniert.
Das Bild mit der id='5' wurde nicht ausgegeben.
Was mache ich falsch?
Und wie kann ich es schaffen, dass immer genau das Bild ausgegeben wird,
dessen id über die Handbuchstruktur gerade in der Variable gespeichert ist??

<img src="Bilder/{//Bild[@id=$bildRef]}" alt="{//Bild/@alt[@id=$bildRef]}" width="{//Bild/@width[@id=$bildRef]}"
heigth="{//Bild/@height[@id=$bildRef]}" />

<img src="Bilder/{//Bild[@id='5']}" alt="{//Bild/@alt}" width="{//Bild/@width}" height="{//Bild/@height}" />

Quelltext:

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

<xsl:output method="html" indent="yes"  encoding="ISO-8859-1" />

<!-- Variablen, in denen der XPath-Pfad gespeichert ist. -->
 <xsl:variable name="pfadHandbuchstruktur" select="Handbuch/Handbuchstruktur" />
 <xsl:variable name="pfadHandbuchinhalt" select="Handbuch/Handbuchinhalt" />

<!-- Startvorlage -->
  <xsl:template match="/">
     <!--<xsl:result-document href="Kapitel{@id}.html">-->
         <html>
            <head>
              <title>
                <xsl:value-of select="$pfadHandbuchstruktur/Handbuchtitel" />
              </title>
              <!--  <link rel="stylesheet" type="text/css" href="KapitelAlsHTMLausgeben.css" />-->
            </head>

<body>
               <h1>
                 <xsl:value-of select="$pfadHandbuchstruktur/Handbuchtitel" />
               </h1>
               <p>
      <xsl:apply-templates select="$pfadHandbuchstruktur/KapitelRef" />
               </p>
            </body>
         </html>
     <!--</xsl:result-document>-->
   </xsl:template>

<xsl:template match="KapitelRef">

<xsl:variable name="bildRef">
   <xsl:value-of select="BildRef/@id" />
   <br />
  </xsl:variable>

<!-- Ermittel die id vom BildRef in der Handbucstruktur und gibt dann das dazugehörige Bild aus -->
  xsl:textBildRef: </xsl:text>
  <xsl:value-of select="BildRef/@id" />
  <br />
  xsl:textBild: </xsl:text>
  <xsl:value-of select="//Bild[@id=$bildRef]" />
  <br />
  <br />
  <!--<img src="Bilder/{//Bild[@id='5']}" alt="{//Bild/@alt[@id=$bildRef]}" width="{//Bild/@width[@id=$bildRef]}" heigth="{//Bild/@height[@id=$bildRef]}" />-->
  <img src="Bilder/{//Bild[@id='5']}" alt="{//Bild/@alt}" width="{//Bild/@width}" height="{//Bild/@height}" />
  <br />
  <br />

<hr />

</xsl:template>
</xsl:stylesheet>

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Kyriazis (Volkswagen AG) -->
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="Handbuch">
  xs:annotation
   xs:documentationroot element</xs:documentation>
  </xs:annotation>
  xs:complexType
   xs:sequence
    <xs:element name="Handbuchstruktur">
     xs:complexType
      xs:sequence
       <xs:element name="Handbuchtitel" type="xs:string"/>
       <xs:element name="KapitelRef" maxOccurs="unbounded">
        xs:complexType
         <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="TextRef" minOccurs="0" maxOccurs="unbounded">
           xs:complexType
            xs:simpleContent
             <xs:extension base="xs:string">
              <xs:attribute name="id" type="xs:string" use="required"/>
             </xs:extension>
            </xs:simpleContent>
           </xs:complexType>
          </xs:element>
          <xs:element name="BildRef" minOccurs="0" maxOccurs="unbounded">
           xs:complexType
            xs:simpleContent
             <xs:extension base="xs:string">
              <xs:attribute name="id" type="xs:string" use="required"/>
             </xs:extension>
            </xs:simpleContent>
           </xs:complexType>
          </xs:element>
         </xs:sequence>
         <xs:attribute name="id" type="xs:string" use="required"/>
        </xs:complexType>
       </xs:element>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="Handbuchinhalt">
     xs:complexType
      xs:sequence
       <xs:element name="Text">
        xs:complexType
         xs:sequence
          <xs:element name="Textbaustein" maxOccurs="unbounded">
           xs:complexType
            xs:simpleContent
             <xs:extension base="xs:string">
              <xs:attribute name="id" type="xs:string" use="required"/>
              <xs:attribute name="autor" type="xs:string" use="required"/>
              <xs:attribute name="datum" type="xs:string" use="required"/>
             </xs:extension>
            </xs:simpleContent>
           </xs:complexType>
          </xs:element>
         </xs:sequence>
        </xs:complexType>
       </xs:element>
       <xs:element name="Bild" maxOccurs="unbounded">
        xs:complexType
         xs:simpleContent
          <xs:extension base="xs:string">
           <xs:attribute name="id" type="xs:string" use="required"/>
           <xs:attribute name="bildunterschrift" type="xs:string" use="required"/>
           <xs:attribute name="src" type="xs:string" use="required"/>
           <xs:attribute name="width" type="xs:string" use="required"/>
           <xs:attribute name="height" type="xs:string" use="required"/>
           <xs:attribute name="alt" type="xs:string" use="required"/>
          </xs:extension>
         </xs:simpleContent>
        </xs:complexType>
       </xs:element>
       <xs:element name="KapitelName" maxOccurs="unbounded">
        xs:annotation
         xs:documentationdas Attribut titelAbk ist bei der Website für das Menü</xs:documentation>
        </xs:annotation>
        xs:complexType
         xs:simpleContent
          <xs:extension base="xs:string">
           <xs:attribute name="id" type="xs:string" use="required"/>
           <xs:attribute name="kapiteltyp" type="xs:string" use="required"/>
           <xs:attribute name="formatierung" type="xs:string" use="required"/>
           <xs:attribute name="titelAbk" type="xs:string" use="required"/>
          </xs:extension>
         </xs:simpleContent>
        </xs:complexType>
       </xs:element>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>

Vielen Dank im voraus für Eure Hilfe.

Viele Grüße
verenice