miamiomc: copy-of mit Variable

Hallo Gemeinde,

mit der XML Datei:

<?xml version="1.0" encoding="ISO-8859-1"?>  
<?xml-stylesheet type="text/xsl" href="gallery.xsl"?>  
<grund_knoten xmlns:od="urn:schemas-microsoft-com:officedata" generated="2007-11-11T17:15:58">  
<Titel>Krapfenversteigerung</Titel>  
<Bild>  
<Dateiname_Gal>../krapfen_2013/100_4632.png</Dateiname_Gal>  
<Dateiname_Bild>../krapfen_2013/100_4632.JPG</Dateiname_Bild>  
</Bild>  
...  
</grund_knoten>

und der xsl:

<?xml version="1.0"?>  
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:fx="#fx-functions" exclude-result-prefixes="msxsl fx">  
	<xsl:variable name="url_ext">5</xsl:variable>  
	<xsl:output method="html" version="4.0" indent="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>  
		<xsl:template match="//grund_knoten" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
			<html>  
				<head>  
					<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1"/>  
					<title>Bilder</title>  
					<style type="text/css"></style>  
					<link rel="stylesheet" href="../../css/chronik.css" type="text/css"/>  
				</head>  
				<body bgcolor="#FFFFFF" marginwidth="4" leftmargin="4" marginheight="0" topmargin="0" vlink="" alink="" background="../../back.jpg">  
					<div align="center">  
						<xsl:choose>  
							<xsl:when test="$url_ext ='gallery'">  
								<table>  
									<xsl:for-each select="Bild">  
										<xsl:variable name="zaehler"><xsl:number/></xsl:variable>  
										<xsl:variable name="var_Img"><xsl:value-of select="Dateiname_Gal"/></xsl:variable>  
										<tr>  
											<td width="100%">  
												<a href="?{$zaehler}" target="Einzelbild"><img src="{$var_Img}" width="100%"/><BR/></a>  
											</td>  
										</tr>  
									</xsl:for-each>  
								</table>  
							</xsl:when>  
							<xsl:otherwise>  
								URL_Nummer: <xsl:value-of select="$url_ext"/>  
								<xsl:variable name="var_Img"><xsl:copy-of select="(Bild/Dateiname_Bild)[$url_ext]"/></xsl:variable>  
								<img src="{$var_Img}" width="100%"/><BR/>  
							</xsl:otherwise>  
						</xsl:choose>  
					</div>  
				</body>  
			</html>  
		</xsl:template>  
</xsl:stylesheet>

Möchte ich beispielsweise den 5. Knoten ausgeben (oder als Galerie).
Wenn ich
<xsl:variable name="var_Img"><xsl:copy-of select="(Bild/Dateiname_Bild)[5]"/></xsl:variable>

wird das Bild entsprechend angezeigt. Mit [$url_ext] nicht. Mache ich einen Denkfehler?

Zusätzlich stehe ich noch vor dem Problem, das ich die Variable $url_ext als Parameter aus der URL lesen will, aber noch keine Lösung / Umsetzung dafür gefunden habe.

Kann jemand helfen?

Danke

  1. Hallo miamiomc,

    Möchte ich beispielsweise den 5. Knoten ausgeben (oder als Galerie).
    Wenn ich
    <xsl:variable name="var_Img"><xsl:copy-of select="(Bild/Dateiname_Bild)[5]"/></xsl:variable>

    wird das Bild entsprechend angezeigt. Mit [$url_ext] nicht. Mache ich einen Denkfehler?

    Ich vermute, dass eher Bild[$url_ext]/Dateiname_Bild gesucht ist.

    Zusätzlich stehe ich noch vor dem Problem, das ich die Variable $url_ext als Parameter aus der URL lesen will, aber noch keine Lösung / Umsetzung dafür gefunden habe.

    Probiere es mit <xsl:param name="url_ext"/>.

    Grüße,
    Thomas

    1. Hallo Thomas,

      Ich vermute, dass eher Bild[$url_ext]/Dateiname_Bild gesucht ist.

      Ist genausowenig zielführend. Es wird kein Bild angezeigt. Es ist als wenn der Wert der Variable bzw. die Variable (Auch mit param ists nicht besser) ignoriert wird. Der Wert ist vorhanden, ich gebe ihn zur Kontrolle vorher aus. Wenn ich statt der Variable den Wert selbst eintrage funktionierts.
      Zu deinem Tipp:

      Zusätzlich stehe ich noch vor dem Problem, das ich die Variable $url_ext als Parameter aus der URL lesen will, aber noch keine Lösung / Umsetzung dafür gefunden habe.

      Probiere es mit <xsl:param name="url_ext"/>.

      Hast Du dabei eine Zeile vergessen, wo kommt der Wert für url_ext her, bzw. wie wird er aus der URL gelesen?

      Auf jedenfall erstmal danke, auch wenns nicht funktioniert.

      Lothar

      1. Hallo miamiomc,

        Ist genausowenig zielführend. Es wird kein Bild angezeigt. Es ist als wenn der Wert der Variable bzw. die Variable (Auch mit param ists nicht besser) ignoriert wird. Der Wert ist vorhanden, ich gebe ihn zur Kontrolle vorher aus. Wenn ich statt der Variable den Wert selbst eintrage funktionierts.

        Dann mal etwas mehr testbaren Code posten, ich war der Meinung eine img-Ausgabe erhalten zu haben (nur ohne sichtbares Bild).

        Probiere es mit <xsl:param name="url_ext"/>.
        Hast Du dabei eine Zeile vergessen, wo kommt der Wert für url_ext her, bzw. wie wird er aus der URL gelesen?

        Der Wert kommt durch die Parameterübergabe zustande, etwa bei Saxon via Kommandozeile. Im Browser klappt das so offenbar nicht, da wäre eine JS-Lösung sinnvoll oder gleich serverseitig prozessieren.

        Grüße,
        Thomas

        1. Dann mal etwas mehr testbaren Code posten, ich war der Meinung eine img-Ausgabe erhalten zu haben (nur ohne sichtbares Bild).

          Hallo Thomas,

          ich habe beide verfügbare Codes im ersten Post xml wie xsl eingebunden. Wird er nicht angezeigt oder was brauchst du?

          Danke
          Lothar

          1. Hallo miamiomc,

            ich habe beide verfügbare Codes im ersten Post xml wie xsl eingebunden. Wird er nicht angezeigt oder was brauchst du?

            Ich sagte ja, dass ich mit meiner Änderung zu einem Code-Ergebnis gekommen bin. Das Bild habe ich ja nicht vorliegen.

            Grüße,
            Thomas