![]() |
[XML] for-each Schleife
Ich habe folgende Schleife:
XML-Code:
Wäre es möglich diese so umzubauen, dass nicht nach jedem Eintrag ein Zeilenumbruch erfolgt, sondern nur nach jedem fünften oder so?
<xsl:for-each select="Kontakt">
<xsl:sort select="concat(Name, Vorname)"/> <!-- für den Fall, dass es mehrere identische Namen gibt wird noch die aktuelle Position in die Sprungmarke eingefügt --> <a href="#{Vorname}_{Name}:{position()}"> <xsl:value-of select="Name"/>*<xsl:value-of select="Vorname"/></a>**<xsl:value-of select="Firma"/> </xsl:for-each> |
Re: [XML] for-each Schleife
Hi Luckie,
Zitat:
Gruß |
Re: [XML] for-each Schleife
Zitat:
XML-Code:
@Luckie: Die Überschrift sollte aber [XSL] und nicht [XML] enthalten ;)
<xsl:if test="position() mod 5 = 0">
<hr /> </xsl:if> ...:cat:... |
Re: [XML] for-each Schleife
Zitat:
statt <hr />. Aber du hast natürlich vollkommen recht. Thank God it's friday... ;) (Auf dem Nachhauseweg ist mir der Fehler auch eingefallen...) Gruß |
Re: [XML] for-each Schleife
Perfekt. Nur warum werden die Attribute für <td> nicht berücksichtigt:
XML-Code:
Und noch was:
<table>
<xsl:for-each select="Kontakt"> <xsl:sort select="concat(Name, Vorname)"/> <!-- für den Fall, dass es mehrere identische Namen gibt wird noch die aktuelle Position in die Sprungmarke eingefügt --> <td> <xsl:attribute name="border-width">1px</xsl:attribute> <xsl:attribute name="border-style">solid</xsl:attribute> <a href="#{Vorname}_{Name}:{position()}"> <xsl:value-of select="Name"/> <xsl:value-of select="Vorname"/></a> <xsl:value-of select="Firma"/></td> <xsl:if test="position() mod 5 = 0"> <tr /> </xsl:if> </xsl:for-each> </table>
XML-Code:
Wie kann ich das gleiche hier erreichen? Kontakt sieht so aus:
<xsl:apply-templates select="Kontakt">
<xsl:sort select="concat(Name, Vorname)"/> </xsl:apply-templates>
XML-Code:
<xsl:template match="Kontakt">
<dl> <dt> <a name="{Vorname}_{Name}:{position()}" id="{Vorname}_{Name}:{position()}"> [b]<xsl:value-of select="Name"/>*<xsl:value-of select="Vorname"/>**<xsl:value-of select="Firma"/>[/b] </a> </p></dt> <dd> <xsl:value-of select="Strasse"/> <xsl:value-of select="PLZ"/> <xsl:value-of select="Ort"/> <xsl:if test="Land!=''"><xsl:value-of select="Land"/> </xsl:if> <xsl:if test="GebDat!=''">Geburtsdatum: <xsl:value-of select="GebDat"/> </xsl:if> <xsl:if test="Telefon1!=''">Tel. <xsl:value-of select="Telefon1"/> </xsl:if> <xsl:if test="Telefon2!=''">Tel. <xsl:value-of select="Telefon2"/> </xsl:if> <xsl:if test="Fax!=''">Fax: <xsl:value-of select="Fax"/> </xsl:if> <xsl:if test="EMail1!=''"> [email="{EMail1}"]<xsl:value-of select="EMail1"/>[/email] </xsl:if> <xsl:if test="EMail2!=''"> [email="{EMail2}"]<xsl:value-of select="EMail2"/>[/email] </xsl:if> <xsl:if test="URL!=''"> [url="{URL}"]<xsl:value-of select="URL"/>[/url] </xsl:if> </p></dd> </dl> <xsl:if test="position()!=last()"> </p> </xsl:if> </xsl:template> |
Re: [XML] for-each Schleife
Hallo Michael,
wenn du mit <xsl:element name="td"> arbeitest, dann wird es funktionieren. Grüße vom marabu |
Re: [XML] for-each Schleife
Zitat:
Probier mal folgendes:
XML-Code:
ungetestet.
<xsl:attribute name="style">border:1px solid black;</xsl:attribute>
Gruß |
Re: [XML] for-each Schleife
Geht. Nur bei der Tabelle ignoriert er das collapse:
XML-Code:
<table>
<xsl:attribute name="style">border:1px solid black collapse;</xsl:attribute> |
Re: [XML] for-each Schleife
Zitat:
hat denn <xsl:element> bei <xsl:output method="HTML" /> überhaupt eine Wirkung? Ich dachte bis jetzt immer, <xsl:element> sei ausschließlich für die Transformation nach XML vorbehalten...? Gruß |
Re: [XML] for-each Schleife
Zitat:
Gruß |
Re: [XML] for-each Schleife
Sowohl auf IE als auch auf Firefox getestet. Um die Tabelle soll ein Rahmen und um die Zellen, aber eben nicht doppelt, wenn eben meherere Zellen neben oder untereinander sind.
|
Re: [XML] for-each Schleife
lies mal, vielleicht hilft dir das weiter:
![]() (unteres Drittel, da steht was wichtiges über collapse) Gruß |
Re: [XML] for-each Schleife
Hallo Armin,
Zitat:
Grüße |
Re: [XML] for-each Schleife
So. Das geht. Fehlt nur noch das mit dem
XML-Code:
Wie kann ich das gleiche hier erreichen? Kontakt sieht so aus:
<xsl:apply-templates select="Kontakt">
<xsl:sort select="concat(Name, Vorname)"/> </xsl:apply-templates>
XML-Code:
<xsl:template match="Kontakt">
<dl> <dt><p> <a name="{Vorname}_{Name}:{position()}" id="{Vorname}_{Name}:{position()}"> <b><xsl:value-of select="Name"/>*<xsl:value-of select="Vorname"/>**<xsl:value-of select="Firma"/></b> </a> </p></dt> <dd><p><xsl:value-of select="Strasse"/><br/> <xsl:value-of select="PLZ"/> <xsl:value-of select="Ort"/><br/> <xsl:if test="Land!=''"><xsl:value-of select="Land"/><br/></xsl:if> <xsl:if test="GebDat!=''">Geburtsdatum: <xsl:value-of select="GebDat"/><br/></xsl:if> <xsl:if test="Telefon1!=''">Tel. <xsl:value-of select="Telefon1"/><br/></xsl:if> <xsl:if test="Telefon2!=''">Tel. <xsl:value-of select="Telefon2"/><br/></xsl:if> <xsl:if test="Fax!=''">Fax: <xsl:value-of select="Fax"/><br/></xsl:if> <xsl:if test="EMail1!=''"> <a href="mailto:{EMail1}"><xsl:value-of select="EMail1"/></a><br/> </xsl:if> <xsl:if test="EMail2!=''"> <a href="mailto:{EMail2}"><xsl:value-of select="EMail2"/></a><br/> </xsl:if> <xsl:if test="URL!=''"> <a href="{URL}" target="_blank"><xsl:value-of select="URL"/></a><br/> </xsl:if> <!-- Firma, Position, Bemerkung und InBericht spare ich mir an der Stelle --> </p></dd> </dl> <!-- wenn noch weitere Kontakte folgen, dann einen Abstand einbauen --> <xsl:if test="position()!=last()"> <p><br/></p> </xsl:if> </xsl:template> |
DP-Maintenance
Dieses Thema wurde von "MrSpock" von "Programmieren allgemein" nach "XML" verschoben.
XML Beitrag. |
Re: [XML] for-each Schleife
Arg, ich sehe gerade der neue IE7 macht im Code aus den < und > die Entitäten < und ;>. Der neue Firefox im Büro hat es richtig angezeigt. :wall:
Nein, auch der Firefox macht das. Aber beide nur im letzten Posting #14. :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz