Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   HTML Tags in XML verwenden (https://www.delphipraxis.net/70353-html-tags-xml-verwenden.html)

marabu 31. Mai 2006 21:17

Re: HTML Tags in XML verwenden
 
Hallo Michael,

ich kann die Eingabedaten gerade nicht sehen und dein XSL-T Code ist nur ein Fragment und passt auch nicht so recht zu den gezeigten Ausgabedaten, aber eines ist klar: Egal welchem Element du das Attribut BR zugeben möchtest, so wie du es machst, wird nie ein Element BR daraus. Um ein solches Element auszugeben braucht es schon das hier:

XML-Code:
<xsl:element name="br" />
Gute Nacht

marabu

Luckie 31. Mai 2006 21:45

Re: HTML Tags in XML verwenden
 
Aha. :gruebel: Werde ich mir aber erst wieder nächsten Dienstag angucken könne, wenn ich wieder im Büro bin.

MathiasSimmack 31. Mai 2006 22:03

Re: HTML Tags in XML verwenden
 
Muss es unbedingt <link> sein? Ansonsten verweise ich erneut auf mein Universalbeispiel:
XML-Code:
<xsl:template match="ul|ol|li|img|p|a|b|u|i|br|code|pre|span|iframe|del|small|hr|h1|h2|h3|acronym">
  <xsl:copy>
   <xsl:copy-of select="@*"/>
   <xsl:apply-templates/>
  </xsl:copy>
</xsl:template>
wodurch direkt im XML-Code Sachen wie
XML-Code:
[url="bla"]foo[/url]
benutzt werden können. :stupid:

Luckie 1. Jun 2006 00:20

Re: HTML Tags in XML verwenden
 
@Mathias: Sas mit dem Zeilenumbruch ist beruflich, da brauche ich das, aber sonst keine HTML Tags. Das mit dem Link war privat. Aber gerade so etwas wollte ich vermeiden, da ich daten und Darstellung strikt trennen möchte. Womit wir zum näöchsten Problem kommen. Irgendwie verstehe ich das Prinzip noch nicht so ganz:

Code:
<xsl:template match="kategorie">
   <a name=<xsl:value-of select="@value"/> />
   <h3><xsl:value-of select="@value"/></h3>
   <xsl:apply-templates />
   <hr />
</xsl:template>
Wie man sieht, möchte ich über der Überschrift einen Anker setzen. Aber so gibt das natürlich nichts. Wie macht man es richtig? :duck:

marabu 1. Jun 2006 06:23

Re: HTML Tags in XML verwenden
 
Wenn du das h3 Element direkt ausgeben willst, dann solltest du XHTML als default namespace vereinbaren - oder so (ungetestet):

XML-Code:
<xsl:template match="kategorie">
   <xsl:element name="a">
      <xsl:attribute name="name">
         #<xsl:value-of select="@value" />
      </xsl:attribute>
   </xsl:element>
   <xsl:element name="h3">
      <xsl:value-of select="@value"/>
   </xsl:element>
   <xsl:apply-templates />
   <hr />
</xsl:template>
Grüße vom marabu

MathiasSimmack 1. Jun 2006 08:06

Re: HTML Tags in XML verwenden
 
Zitat:

Zitat von Luckie
Wie man sieht, möchte ich über der Überschrift einen Anker setzen. Aber so gibt das natürlich nichts. Wie macht man es richtig? :duck:

Kleine Anekdote: Vor einiger Zeit schrieb ein talentierter junger API-Programmierer mal eine Adressverwaltung auf XML-Basis. Der Beispieldatei liegt ein XSL-Stylesheet bei, geschrieben von einem anderen jungen Programmierer, die im Prinzip die Grundlagen enthält. Selbst Anker kommen darin vor, damit man über das "Inhaltsverzeichnis" direkt zu einer bestimmten Adresse springen kann. :zwinker:

Luckie 1. Jun 2006 09:39

Re: HTML Tags in XML verwenden
 
:oops: Jetzt wo du es sagst. :wall:

Luckie 1. Jun 2006 13:03

Re: HTML Tags in XML verwenden
 
http://www.michael-puff.de/Ablage/Links.xml Geht. ;)

MathiasSimmack 1. Jun 2006 15:54

Re: HTML Tags in XML verwenden
 
Zwei kleine Patches fürs "gute Aussehen" :stupid:

XML-Code:
<xsl:template match="item">
   <xsl:if test="count(link)&gt;0">
      <h4><xsl:value-of select="@value"/></h4>
      <div class="ul">



         <xsl:apply-templates />
      </p></div>
      


   </xsl:if>
</xsl:template>
lässt leere Rubriken wie "Software->Programmierung" verschwinden.

XML-Code:
<xsl:template match="link">
   <a>
      <xsl:attribute name="HREF"><xsl:apply-templates/></xsl:attribute>
      <xsl:attribute name="title"><xsl:apply-templates/></xsl:attribute>
      <xsl:attribute name="target">_blank</xsl:attribute>
      <xsl:value-of select="@caption"/>
   </a>
   


   <xsl:choose>
      <xsl:when test="@description!=''">
         <span class="linkdescription"><xsl:value-of select="@description"/></span>
         <xsl:if test="position()!=last()">
            



         </xsl:if>
      </xsl:when>
      <xsl:otherwise>
         <xsl:if test="position()!=last()">
            


         </xsl:if>
      </xsl:otherwise>
   </xsl:choose>
</xsl:template>
fügt einen zusätzlichen Zeilenumbruch nach der Beschreibung oder dem Linknamen ein, es sei denn es handelt sich um den letzten Link in der Tabelle. Dann wird der Zeilenumbruch weggelassen.

Luckie 6. Jun 2006 09:39

Re: HTML Tags in XML verwenden
 
Zitat:

Zitat von marabu
Um ein solches Element auszugeben braucht es schon das hier:

XML-Code:
<xsl:element name="br" />

Ich habe es jetzt so:
Code:
      <td>
        <xsl:element name="br/">
        <xsl:apply-templates/>
        </xsl:element>
      </td>
Und in der XML-Datei sieht es so aus:
Code:
<Error TS="2006-06-06 10:24:32:120">Löschvorgang abgebrochen
Der angegebene Netzwerkname ist nicht mehr verfügbar [64]
Nicht mehr gelöschte Dateien:
\\Hestia\test_PMD_COLD\Kopie (4) von J107925_Druckverwaltung_113508.001
</Error>
Aber er macht keinen Umbruch.

@Mathias: Danke für die Tipps.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz