Florian Reichert: Richtiges match= gesucht!

Hallo Ich habe folgende xml Quelle:
 <HTMLTextSection Title="Test1">
 <HTMLLink Title="Linux" URL="linux.shtml"></HTMLLink>
      <HTMLLink Title="Windows XP Home oder Professional" URL="http://www.microsoft.de"></HTMLLink><HTMLTextSection>
<HTMLTextSection ......
(Wobei das Eltern Element auch HTMLPage heißen kann.)

Ich möchte nun folgenden html output erreichen:
<div class="links">
   <div><a href="linux.shtml">Linux</a></div>
   <div><a href="http://www.microsoft.de">Windows</a></div>
</div>
---------------------------------------------------------------------
<xsl:template match="HTMLLink" name="HTMLLink">
      <div class="links">
          <div>
            <a href="{@URL}">
              <xsl:value-of select="@Title"/>
            </a>
          </div>
      </div>
</xsl:template>

Das bearbeitet zwar alle Links, legt aber für jeden einzelnen Link einen div Container der Klasse links an.

Ich denke ich muß mit einer for each schleife alle <HTMLink> Elemnte abbarbeiten. Aber ich weiß nicht, was ich dan match zuweisen soll. lasse ich match="HTMLLink" bekomme ich gar keine Ausgabe:

<xsl:template match="HTMLLink" name="HTMLLink">
     <xsl:if test="HTMLLink">
       <div class="link">
         <xsl:for-each select="HTMLLink">
           <div>
             <a href="{@URL}">
               <xsl:value-of select="@Title"/>
             </a>
           </div>
         </xsl:for-each>
       </div>
     </xsl:if>
</xsl:template>

Was muß ich denn da richtiger Weiße setzen, damit nicht für jedes einzelne HTMLLink Element das Template einzeln abgearbeitet wird?

Vielen Dank für Eure Hilfe!

Florian

  1. Hi,

    <xsl:template match="HTMLLink" name="HTMLLink">
          <div class="links">

    [...]

    </div>
    </xsl:template>

    Das bearbeitet zwar alle Links, legt aber für jeden einzelnen Link einen div Container der Klasse links an.

    dann schreibe diesen _außerhalb_ des Aufrufs Deines Templates. Ganz einfach.

    Ich denke ich muß mit einer for each schleife alle <HTMLink> Elemnte abbarbeiten.

    Nö.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo,

    Ich möchte nun folgenden html output erreichen:

    <xsl:template match="/">
    <html><title></title><body>

    <div class="links">

    <-- richtigen Pfad beim select="" eintragen -->
    <xsl:apply-templates select="HTMLTextSection/HTMLLink" />

    </div>

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


    <xsl:template match="HTMLLink">
           <div>
              <a href="{@URL}">
                <xsl:value-of select="@Title"/>
              </a>
            </div>
     </xsl:template>

    Grüße
    Thomas