# docBook XSLT: HTML Code Snippet in Erzeugte HTML Dokument einfügen



## kama (12. Okt 2011)

Ich habe ein docBook 4.4 XML File dass eine Benutzeranleitung darstellt. Ich kann derzeit per Tools (Maven) daraus HTML und PDF erzeugen...klappt perfekt...

Ich muss aber noch in dem HTML Dokument ein kleines Code-Snippet einfügen:

[XML]<xsl:template name="xxxxxxx">
  <img src="images/pdfdoc.gif">PDF</img>
</xsl:template>
[/XML]

Der derzeitig erzeugte HTML Code sieht wie folgt aus:


```
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="./hilfeKMV.css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
<meta name="date" content="10/12/2011">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084"
    alink="#0000FF">
    <div lang="de" class="book"
        title="Title">
        <div class="titlepage">
            <div>
                <div>
                    <h1 class="title">
                        <a name="d0e1"></a>title
                    </h1>
                </div>
            </div>
            <hr>
        </div>
        <div class="toc">
            <p>
                <b>TOC</b>
            </p>
```
Ich möchte den HTML Code Teil vor 
	
	
	
	





```
<div class="toc">
```
...So nun ist die Frage: Wie geht das?

Ich bin der Meinung, dass das in der Form:
[XML]   <xsl:template name="xxxxxxx">
      <xsl:variable name="top-anchor">
        <xsl:call-template name="object.id">
          <xsl:with-param name="object" select="/*[1]"/>
        </xsl:call-template>
      </xsl:variable>
      <img src="images/pdfdoc.gif">PDF</img>
    </xsl:template>

[/XML]Aussehen muss....die Frage ist nur, bin ich hier auf dem richtigen Wege oder völlig daneben?

Vielen Dank im Voraus.
Gruß
Karl Heinz Marbaise


----------



## SlaterB (12. Okt 2011)

welch unsortierte Frage,
wenn du irgendwas an eine bestimmte Stelle einfügen willst, dann mache das doch,
wenn du schon bisher komplizierte Strukturen zusammenbaust sollte das eigentlich nicht schwer sein,
wie hast du es z.B. geschafft dass "<div class="toc">" erschien?

was dein Problem/ deine Frage dazu ist kann ich persönlich bisher gar nicht nachvollziehen,
zweimal schreibst du von einem template mit Namen "xxxxxxx", was einerseits nur schwierig in irgendeinem Kontext einzuordnen ist,
besonders aber zweimal von dir mit verschiedenen Inhalt genannt wird?
einmal nur mit dem anscheinend zu erzeugenden IMG-Code, einmal mit nicht verwendeten xsl-variable, 
es geht noch um top-anchor, um object-id usw.,

welchen Zweck dieser Teilcode hat, warum du das template zweimal postest, mit verschiedenen Inhalt, 
und was nun insgesamt überhaupt die Frage ist, alles bleibt tief im Dunkeln

hmm..


----------



## kama (12. Okt 2011)

Hallo,




SlaterB hat gesagt.:


> welch unsortierte Frage,


Sorry...Ja Du hast recht... besser sortieren/besser beschreiben...ein wenig wirr.....Danke für den Hinweis...



SlaterB hat gesagt.:


> wenn du irgendwas an eine bestimmte Stelle einfügen willst, dann mache das doch,
> wenn du schon bisher komplizierte Strukturen zusammenbaust sollte das eigentlich nicht schwer sein,
> wie hast du es z.B. geschafft dass "<div class="toc">" erschien?


Ich habe den bisherigen Erzeugungsprozess übernommen und da wird schon aus DocBook eben HTML erzeugt...was auch wunderbar funktioniert...nun bin ich an dem Punkt und muss das DocBook-XML Anpassen und habe festgestellt das einige Schritte manuell gemacht wurden...und genau die Versuche ich derzeit zu automatisieren....Daraus folgert das beschriebene Problem...


Ok...ich versuche es klarer zu machen:

Derzeit ist das Ergebnis der Konvertierung ein HTML File (mit der oben beschriebenen Struktur)...nun möchte ich am Anfang der HTML Datei eben einen Link auf eine PDF-Doku einfügen....(Das wurde bisher manuell erledigt)...und genau das versuche ich derzeit eben automatisch hinzukriegen...
Also sprich das soll das Ergebnis werden:[XML] <div class="titlepage">
            <div>
                <div>
                    <h1 class="title">
                        <a name="d0e1"></a>title
                    </h1>
                </div>
            </div>
            <hr>
        </div>
<!-- Den folgenden DIV-Block möchte ich einfügen -->
        <div class="einfuegen">
          <a href="./xyz.pdf"><img src="images/pdfdoc.gif">PDF</img></a>
        </div>

        <div class="toc">
            <p>
                <b>TOC</b>
            </p>[/XML]

Ich habe schon in XSL Files die ich vorliegen habe reingeschaut und solche Snippets wie so etwas gefunden:
[XML]<xsl:template name="body.content">
      <xsl:variable name="top-anchor">
        <xsl:call-template name="object.id">
          <xsl:with-param name="object" select="/*[1]"/>
        </xsl:call-template>
      </xsl:variable>
      <img src="images/pdfdoc.gif">PDF</img>
    </xsl:template>[/XML]
Aber leider erschliesst sich mir das bisher nicht...bzw. alle Versuche sind bisher gescheitert...

Was auch möglich ist, wenn es einfacher zu erreichen ist, dass der Link hier hin kommt:

[XML] <div class="titlepage">
            <div>
                <div>
                    <h1 class="title">
                        <a name="d0e1"></a>title
                    </h1>
                </div>
            </div>
<!-- Den folgenden DIV-Block möchte ich einfügen -->
           <div class="einfuegen">
             <a href="./xyz.pdf"><img src="images/pdfdoc.gif">PDF</img></a>
           </div>
         <hr>
        </div>
        <div class="toc">
            <p>
                <b>TOC</b>
            </p>[/XML]


Ich hoffe das ist klarer ...

Vielen Dank.
Gruß
Karl Heinz Marbaise


----------



## SlaterB (12. Okt 2011)

ohne Kenntnisse zum bisherigen Aufbau der HTML-Datei/ Erzeugung wird Änderung wahrlich schwierig,
ich weiß nicht ob DocBook da irgendwas macht, grundsätzlich behaupte ich aber bisschen von XSL, Templates usw. zu verstehen,

deine bisher geposteten Templates, nun "body.content" statt "xxxxxxx", sagen mir allerdings wiederum nichts was zum Problem helfen könnte,
gibt es nicht noch mehr XSL, was du posten könntest?
kannst du darin oder sonst irgendwo nach "<div class="toc">" oder nur nach "div" oder "toc" oder noch spezifischeren Texten suchen?


----------



## kama (12. Okt 2011)

Hi,




SlaterB hat gesagt.:


> deine bisher geposteten Templates, nun "body.content" statt "xxxxxxx", sagen mir allerdings wiederum nichts was zum Problem helfen könnte,
> gibt es nicht noch mehr XSL, was du posten könntest?


Sorry klar kann ich das XSL posten...

[XML]<?xml version='1.0' encoding="ISO-8859-15" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
				xmlns:date="http://exslt.org/dates-and-times"
				exclude-result-prefixes="date"
				version="1.0">

<!--  Der folgende Pfad ist relativ, da hier eine URL verlangt wird. 
      Derzeit wird das ausgepackte docbook package hier ausgepackt.
-->
<xsl:import href="../docbook-xsl/docbook/html/docbook.xsl"/>

<xslaram name="html.stylesheet" select="'hilfe.css'"/>
<!--xslaram name="admon.graphics" select="1"/-->

<!-- Kein Abbildungsverzeichnis für "book" -->
<xslaram name="generate.toc">
appendix  toc,title
article/appendix  nop
article   toc,title
book      toc,title,table,example,equation
chapter   nop
part      toc,title
preface   toc,title
qandadiv  toc
qandaset  toc
reference toc,title
sect1     nop
sect2     nop
sect3     nop
sect4     nop
sect5     nop
section   nop
set       toc,title
</xslaram>

<xsl:template name="chapter.titlepage.before.recto">
  <xsl:variable name="top-anchor">
    <xsl:call-template name="object.id">
      <xsl:with-param name="object" select="/*[1]"/>
    </xsl:call-template>
  </xsl:variable>

  <p class="returntotop">
    <a href="#{$top-anchor}">
      <!--xsl:text>Nach oben</xsl:text-->
	  <img src="images/up.gif" border="0" alt="nach oben" />
    </a>
  </p>
</xsl:template>

<xsl:template name="sect1.titlepage.before.recto">
  <xsl:variable name="top-anchor">
    <xsl:call-template name="object.id">
      <xsl:with-param name="object" select="/*[1]"/>
    </xsl:call-template>
  </xsl:variable>

  <p class="returntotop">
    <a href="#{$top-anchor}">
      <!--xsl:text>Nach oben</xsl:text-->
	  <img src="images/up.gif" border="0" alt="nach oben" />
    </a>
  </p>
</xsl:template>

<!-- Erstellungsdatum als META-Tag im HTML-Header -->
<xsl:template name="user.head.content">
  <meta name="date">
    <xsl:attribute name="content">
      <xsl:call-template name="datetime.format">
        <xsl:with-param name="date" select="date:date-time()"/>
        <xsl:with-param name="format" select="'m/d/Y'"/>
      </xsl:call-template>
    </xsl:attribute>
  </meta>
</xsl:template>

<!-- Erstellungsdatum als Footer -->
<xsl:template name="user.footer.content">
  <BR/><HR/><BR/>
  <!--Dokument zuletzt aktualisiert: <?dbtimestamp format="Y-m-d H:M:S"?>.-->
</xsl:template>

</xsl:stylesheet>
[/XML]

EDIT: Den docbook.xsl bekomme ich aus dem foglenden Maven Artefakt:
          <groupId>net.sf.docbook</groupId>
           <artifactId>docbook-xsl</artifactId>
           <version>1.76.0</version>
           <type>zip</type>
           <classifier>resources</classifier>


Gruß
Karl Heinz Marbaise


----------



## SlaterB (12. Okt 2011)

tja, da steht nicht viel drin, es ist dann das referenzierte docbook-xsl/docbook/html/docbook.xsl
habe ich mir gerade geladen, wie zu erwarten ist das sehr allgemein gehalten,
die Struktur ist dann in dem vorgegeben, was immer da mit dem XSL transformiert wird

es gibt da hunderte wenn nicht tausende Templates, allein eine toc.xsl mit
[xml]
<?xml version="1.0" encoding="ASCII"?>
<!--This file was created automatically by html2xhtml-->
<!--from the HTML stylesheets.-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">

<!-- ********************************************************************
     $Id: toc.xsl 8421 2009-05-04 07:49:49Z bobstayton $
     ********************************************************************

     This file is part of the XSL DocBook Stylesheet distribution.
     See ../README or Index of /release/xsl/current for
     copyright and other information.

     ******************************************************************** -->

<!-- ==================================================================== -->

<xsl:template match="set/toc | book/toc | part/toc">
  <xsl:variable name="toc.params">
    <xsl:call-template name="find.path.params">
      <xsl:with-param name="node" select="parent::*"/>
      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
    </xsl:call-template>
  </xsl:variable>

  <!-- Do not output the toc element if one is already generated
       by the use of $generate.toc parameter, or if
       generating a source toc is turned off -->
  <xsl:if test="not(contains($toc.params, 'toc')) and                 ($process.source.toc != 0 or $process.empty.source.toc != 0)">
    <xsl:variable name="content">
      <xsl:choose>
        <xsl:when test="* and $process.source.toc != 0">
          <xsl:apply-templates/>
        </xsl:when>
        <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
          <!-- trick to switch context node to parent element -->
          <xsl:for-each select="parent::*">
            <xsl:choose>
              <xsl:when test="self::set">
                <xsl:call-template name="set.toc">
                  <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
                </xsl:call-template>
              </xsl:when>
              <xsl:when test="self::book">
                <xsl:call-template name="division.toc">
                  <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
                </xsl:call-template>
              </xsl:when>
              <xsl:when test="self:art">
                <xsl:call-template name="division.toc">
                  <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
                </xsl:call-template>
              </xsl:when>
            </xsl:choose>
          </xsl:for-each>
        </xsl:when>
      </xsl:choose>
    </xsl:variable>

    <xsl:if test="string-length(normalize-space($content)) != 0">
      <xsl:copy-of select="$content"/>
    </xsl:if>
  </xsl:if>
</xsl:template>

<xsl:template match="chapter/toc | appendix/toc | preface/toc | article/toc">
  <xsl:variable name="toc.params">
    <xsl:call-template name="find.path.params">
      <xsl:with-param name="node" select="parent::*"/>
      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
    </xsl:call-template>
  </xsl:variable>

  <!-- Do not output the toc element if one is already generated
       by the use of $generate.toc parameter, or if
       generating a source toc is turned off -->
  <xsl:if test="not(contains($toc.params, 'toc')) and                 ($process.source.toc != 0 or $process.empty.source.toc != 0)">
    <xsl:choose>
      <xsl:when test="* and $process.source.toc != 0">
        <div>
          <xsl:apply-templates select="." mode="common.html.attributes"/>
          <xsl:apply-templates select="title"/> 
          <dl>
            <xsl:apply-templates select="." mode="common.html.attributes"/>
            <xsl:apply-templates select="*[not(self::title)]"/> 
          </dl>
        </div>
        <xsl:call-template name="component.toc.separator"/>
      </xsl:when>
      <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
        <!-- trick to switch context node to section element -->
        <xsl:for-each select="parent::*">
          <xsl:call-template name="component.toc">
            <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
          </xsl:call-template>
        </xsl:for-each>
        <xsl:call-template name="component.toc.separator"/>
      </xsl:when>
    </xsl:choose>
  </xsl:if>
</xsl:template>

<xsl:template match="section/toc                     |sect1/toc                     |sect2/toc                     |sect3/toc                     |sect4/toc                     |sect5/toc">

  <xsl:variable name="toc.params">
    <xsl:call-template name="find.path.params">
      <xsl:with-param name="node" select="parent::*"/>
      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
    </xsl:call-template>
  </xsl:variable>

  <!-- Do not output the toc element if one is already generated
       by the use of $generate.toc parameter, or if
       generating a source toc is turned off -->
  <xsl:if test="not(contains($toc.params, 'toc')) and                 ($process.source.toc != 0 or $process.empty.source.toc != 0)">
    <xsl:choose>
      <xsl:when test="* and $process.source.toc != 0">
        <div>
          <xsl:apply-templates select="." mode="common.html.attributes"/>
          <xsl:apply-templates select="title"/> 
          <dl>
            <xsl:apply-templates select="." mode="common.html.attributes"/>
            <xsl:apply-templates select="*[not(self::title)]"/> 
          </dl>
        </div>
        <xsl:call-template name="section.toc.separator"/>
      </xsl:when>
      <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
        <!-- trick to switch context node to section element -->
        <xsl:for-each select="parent::*">
          <xsl:call-template name="section.toc">
            <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
          </xsl:call-template>
        </xsl:for-each>
        <xsl:call-template name="section.toc.separator"/>
      </xsl:when>
    </xsl:choose>
  </xsl:if>
</xsl:template>

<!-- ==================================================================== -->

<xsl:template match="tocpart|tocchap                      |toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
  <xsl:variable name="sub-toc">
    <xsl:if test="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
      <xsl:choose>
        <xsl:when test="$toc.list.type = 'dl'">
          <dd>
            <xsl:apply-templates select="." mode="common.html.attributes"/>
            <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
              <xsl:apply-templates select="." mode="common.html.attributes"/>
              <xsl:apply-templates select="tocchap|toclevel1|toclevel2|                                            toclevel3|toclevel4|toclevel5"/>
            </xsl:element>
          </dd>
        </xsl:when>
        <xsltherwise>
          <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
            <xsl:apply-templates select="." mode="common.html.attributes"/>
            <xsl:apply-templates select="tocchap|toclevel1|toclevel2|                                          toclevel3|toclevel4|toclevel5"/>
          </xsl:element>
        </xsltherwise>
      </xsl:choose>
    </xsl:if>
  </xsl:variable>

  <xsl:apply-templates select="tocentry[position() != last()]"/>

  <xsl:choose>
    <xsl:when test="$toc.list.type = 'dl'">
      <dt>
        <xsl:apply-templates select="." mode="common.html.attributes"/>
        <xsl:apply-templates select="tocentry[position() = last()]"/>
      </dt>
      <xsl:copy-of select="$sub-toc"/>
    </xsl:when>
    <xsltherwise>
      <li>
        <xsl:apply-templates select="." mode="common.html.attributes"/>
        <xsl:apply-templates select="tocentry[position() = last()]"/>
        <xsl:copy-of select="$sub-toc"/>
      </li>
    </xsltherwise>
  </xsl:choose>
</xsl:template>

<xsl:template match="tocentry|tocdiv|lotentry|tocfront|tocback">
  <xsl:choose>
    <xsl:when test="$toc.list.type = 'dl'">
      <dt>
        <xsl:apply-templates select="." mode="common.html.attributes"/>
        <xsl:call-template name="tocentry-content"/>
      </dt>
    </xsl:when>
    <xsltherwise>
      <li>
        <xsl:apply-templates select="." mode="common.html.attributes"/>
        <xsl:call-template name="tocentry-content"/>
      </li>
    </xsltherwise>
  </xsl:choose>
</xsl:template>

<xsl:template match="tocentry[position() = last()]" priority="2">
  <xsl:call-template name="tocentry-content"/>
</xsl:template>

<xsl:template name="tocentry-content">
  <xsl:variable name="targets" select="key('id',@linkend)"/>
  <xsl:variable name="target" select="$targets[1]"/>

  <xsl:choose>
    <xsl:when test="@linkend">
      <xsl:call-template name="check.id.unique">
        <xsl:with-param name="linkend" select="@linkend"/>
      </xsl:call-template>
      <a>
        <xsl:attribute name="href">
          <xsl:call-template name="href.target">
            <xsl:with-param name="object" select="$target"/>
          </xsl:call-template>
        </xsl:attribute>
        <xsl:apply-templates/>
      </a>
    </xsl:when>
    <xsltherwise>
      <xsl:apply-templates/>
    </xsltherwise>
  </xsl:choose>
</xsl:template>

<xsl:template match="toc/title">
  <div>
    <xsl:apply-templates select="." mode="common.html.attributes"/>
    <xsl:apply-templates/>
  </div>
</xsl:template>

<xsl:template match="toc/subtitle">
  <div>
    <xsl:apply-templates select="." mode="common.html.attributes"/>
    <xsl:apply-templates/>
  </div>
</xsl:template>

<xsl:template match="toc/titleabbrev">
</xsl:template>

<!-- ==================================================================== -->

<!-- A lot element must have content, because there is no attribute
     to select what kind of list should be generated -->
<xsl:template match="book/lot | part/lot">
  <!-- Don't generate a page sequence unless there is content -->
  <xsl:variable name="content">
    <xsl:choose>
      <xsl:when test="* and $process.source.toc != 0">
        <div>
          <xsl:apply-templates select="." mode="common.html.attributes"/>
          <xsl:apply-templates/>
        </div>
      </xsl:when>
      <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
        <xsl:call-template name="process.empty.lot"/>
      </xsl:when>
    </xsl:choose>
  </xsl:variable>

  <xsl:if test="string-length(normalize-space($content)) != 0">
    <xsl:copy-of select="$content"/>
  </xsl:if>
</xsl:template>

<xsl:template match="chapter/lot | appendix/lot | preface/lot | article/lot">
  <xsl:choose>
    <xsl:when test="* and $process.source.toc != 0">
      <div>
        <xsl:apply-templates select="." mode="common.html.attributes"/>
        <xsl:apply-templates/>
      </div>
      <xsl:call-template name="component.toc.separator"/>
    </xsl:when>
    <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
      <xsl:call-template name="process.empty.lot"/>
    </xsl:when>
  </xsl:choose>
</xsl:template>

<xsl:template match="section/lot                     |sect1/lot                     |sect2/lot                     |sect3/lot                     |sect4/lot                     |sect5/lot">
  <xsl:choose>
    <xsl:when test="* and $process.source.toc != 0">
      <div>
        <xsl:apply-templates select="." mode="common.html.attributes"/>
        <xsl:apply-templates/>
      </div>
      <xsl:call-template name="section.toc.separator"/>
    </xsl:when>
    <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
      <xsl:call-template name="process.empty.lot"/>
    </xsl:when>
  </xsl:choose>
</xsl:template>

<xsl:template name="process.empty.lot">
  <!-- An empty lot element does not provide any information to indicate
       what should be included in it.  You can customize this
       template to generate a lot based on @role or something -->
  <xsl:message>
    <xsl:text>Warning: don't know what to generate for </xsl:text>
    <xsl:text>lot that has no children.</xsl:text>
  </xsl:message>
</xsl:template>

<xsl:template match="lot/title">
  <div>
    <xsl:apply-templates select="." mode="common.html.attributes"/>
    <xsl:apply-templates/>
  </div>
</xsl:template>

<xsl:template match="lot/subtitle">
  <div>
    <xsl:apply-templates select="." mode="common.html.attributes"/>
    <xsl:apply-templates/>
  </div>
</xsl:template>

<xsl:template match="lot/titleabbrev">
</xsl:template>

</xsl:stylesheet>
[/xml]

theoretisch könntest du versuchen, eines der toc-Templates (von je 50 Zeilen) 1:1 in deine gepostete individuelle XSL-Datei zu kopieren,
das sollte dann wie Überschreiben wirken, und dann testweise am Anfang oder Ende etwas zusätzlich einfügen,
aber ob das funktioniert?
generell sind solche MB-großen APIs dann doch nicht gut zu überlisten, jedenfalls aus meiner Sicht,
vielleicht kennt es wer anders besser, habe noch 'docBook' in den Titel geschrieben

einfacher wäre vielleicht, die Vorlage, die dann mit dem XSL verarbeitet wird zu modifizieren,
kannst du dir diesen Schritt vorstellen, hast du die Vorlabe auch verfügbar?
was man dort dann einfügen sollte damit später IMG rauskommt ist aber wieder eine Frage für sich..,
evtl. den fertigen HTML-Code


----------



## SlaterB (12. Okt 2011)

die erzeugte HTML-Datei nachträglich in Java einlesen und zu verändern käme natürlich auch stark in Frage


----------



## kama (12. Okt 2011)

Hallo,

zuerst einmal vielen Dank für die Hinweise. Die haben mich auf die richtige Spure geführt...

Die Lösung ist, wie üblich "simple": Durch einen Blick in die titlepage.templates.xsl:

Durch Einfügung des folgenden Blockes in meine XSL Datei:
[XML]
<xsl:template name="book.titlepage.separator">
	<div class="subsubtile">
		<div class="pdflink">
			<a href="./xxxx.pdf" title="Hilfeseite als PDF-Dokument">
				<img src="images/pdfdoc.gif" border="0" alt="Hilfeseite als PDF-Dokument" />
				<br />
				PDF
			</a>
		</div>
	</div>
	<hr/>
</xsl:template>
[/XML]
Somit liefert mir das Teil jetzt genau das was ich will..

Cool...

Vielen Dank für die Hilfe.

Karl Heinz Marbaise


----------



## SlaterB (12. Okt 2011)

oh ja, diese before/after/separator-Templates scheinen ja weitaus besser geeignet, genau dafür gedacht,
steht bestimmt auch in Anleitungen


----------



## kama (12. Okt 2011)

Hi,



SlaterB hat gesagt.:


> ..steht bestimmt auch in Anleitungen


Vorausgesetzt man liest die Anleitung ;-)

Gruß
Karl Heinz Marbaise


----------

