mjk: Verlinkung

Hi,

habe folgendes Problem.Ich habe eine schleife mit name und will diesen Namen verlinken.
d.h.

<---xml---->
<?xml version="1.0"?>
<pdf_downloads>
 <items>
  <item>
            <name_de>mjk</name_de>
            <download_url>http://www.pfd-download.pdf.</download_url>
  </item>
  </item>
 </items>
</pdf_downloads>

<---------XSL ----->
<?xml version="1.0" encoding="windows-1252"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template match="/">
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
        <title>mjk</title>
      </head>
      <body>
        <table>
 <xsl:for-each select="pdf_downloads/items/item">
       <tr>
  <td width="25" valign="top"><img src="../../img/img_icon_pdf.gif" width="14" height="15" border="0" alt="Download PDF" title="Download PDF" /></td>
  <td width="515" valign="top">
         <a href="{}@download_url"><xsl:value-of select="name_de"/></a>
         </td>
 </tr>
 </xsl:for-each>
       </table>

</body>
    </html>
  </xsl:template>
</xsl:stylesheet>

--------------------------
Es muss also im a href irgendwie das <download_url> eingebunden werden.
wer kann mir helfen?

  1. Hi mjk,

    <xsl:for-each select="pdf_downloads/items/item">
           <tr>
      <td width="25" valign="top"><img src="../../img/img_icon_pdf.gif" width="14" height="15" border="0" alt="Download PDF" title="Download PDF" /></td>
      <td width="515" valign="top">
             <a href="{}@download_url"><xsl:value-of select="name_de"/></a>
             </td>
    </tr>
    </xsl:for-each>

    Auf Attribute greift man mit dem @ zu, deshalb
    ist es hier falsch und die
    geschweiften Klammern müssen drum herum. Wenn man
    explizit den Text-Node selektieren möchte, kann
    man auch <a href="{download_url/text()}"> schreiben,
    aber in deinem Fall würde ich einfach folgendes benutzen:
    ...<a href="{download_url}">...

    Gruß
    André

    1. Auf Attribute greift man mit dem @ zu, deshalb
      ist es hier falsch und die
      geschweiften Klammern müssen drum herum. Wenn man
      explizit den Text-Node selektieren möchte, kann
      man auch <a href="{download_url/text()}"> schreiben,
      aber in deinem Fall würde ich einfach folgendes benutzen:
      ...<a href="{download_url}">...

      Gruß
      André

      Erstmal Danke dür die Schnelle Nachricht André,

      aber Irgendwie klappt es nicht. Es muss ja dynamisch(download_url) sein.
      Ich habe ja mehrere <name>-Atribute und jder name hat ja einen anderen <link>-Atribut, wenn ich es so schreibe(w.oben) bekomme ich ja es auch so angezeigt http://..../{download_url}

      Gruß
      mjk

      1. Hallo,

        aber Irgendwie klappt es nicht. Es muss ja dynamisch(download_url) sein.
        Ich habe ja mehrere <name>-Atribute und jder name hat ja einen anderen <link>-Atribut,

        Nein!
        Entweder hast du uns ein anderes XML hier gepostet als du wirklich hast, oder du verwechselst hier Elemente und Attribute.

        Du hast mehrere <item> Elemente.
        In jedem <item> Element hast du ein <name_de> und ein <download_url> Element.

        Dementsprechend ist es richtig, dass du es so schreiben musst:
        <a href="{download_url}"><xsl:value-of select="name_de"/></a>

        Du kannst es natürlich auch so machen:
        <a>
          <xsl:attribute name="href"><xsl:value-of select="download_url" /></xsl:attribute>
          <xsl:value-of select="name_de"/>
        </a>

        wenn ich es so schreibe(w.oben) bekomme ich ja es auch so angezeigt http://..../{download_url}

        Dann stimm aber das XML oder XSL was du uns gezeigt hast, nicht mit dem überein was du tatsächlich verwendest.

        Grüße
        Thomas

        1. Hi,

          wenn ich es so schreibe(w.oben) bekomme ich ja es auch so angezeigt http://..../{download_url}
          Dann stimm aber das XML oder XSL was du uns gezeigt hast, nicht mit dem überein was du tatsächlich verwendest.

          Oder der verwendete Transformator hat einen an der Waffel...

          cu,
          Andreas

          --
          MudGuard? Siehe http://www.Mud-Guard.de/
        2. Nein!
          Entweder hast du uns ein anderes XML hier gepostet als du wirklich hast, oder du verwechselst hier Elemente und Attribute.

          Du hast mehrere <item> Elemente.
          In jedem <item> Element hast du ein <name_de> und ein <download_url> Element.

          Dementsprechend ist es richtig, dass du es so schreiben musst:
          <a href="{download_url}"><xsl:value-of select="name_de"/></a>

          Du kannst es natürlich auch so machen:
          <a>
            <xsl:attribute name="href"><xsl:value-of select="download_url" /></xsl:attribute>
            <xsl:value-of select="name_de"/>
          </a>
          Grüße
          Thomas

          Danke Thomas mit dem 2ten Beispiel hat es geklappt!