AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[XML] for-each Schleife

Ein Thema von Luckie · begonnen am 3. Nov 2006 · letzter Beitrag vom 3. Nov 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

[XML] for-each Schleife

  Alt 3. Nov 2006, 10:48
Ich habe folgende Schleife:
XML-Code:
          <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>
Wäre es möglich diese so umzubauen, dass nicht nach jedem Eintrag ein Zeilenumbruch erfolgt, sondern nur nach jedem fünften oder so?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Neuromancer

Registriert seit: 8. Aug 2003
62 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: [XML] for-each Schleife

  Alt 3. Nov 2006, 10:58
Hi Luckie,
Zitat von Luckie:
Wäre es möglich diese so umzubauen, dass nicht nach jedem Eintrag ein Zeilenumbruch erfolgt, sondern nur nach jedem fünften oder so?
Jo, schau dir mal "xsl:if" in Kombination mit " test="position()=5" " an.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: [XML] for-each Schleife

  Alt 3. Nov 2006, 11:06
Zitat von Neuromancer:
Jo, schau dir mal "xsl:if" in Kombination mit " test="position()=5" " an.
Nicht ganz, da das nur das 5. Element erreicht, aber nicht jedes 5.
XML-Code:
<xsl:if test="position() mod 5 = 0">
   <hr />
</xsl:if>
@Luckie: Die Überschrift sollte aber [XSL] und nicht [XML] enthalten

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Neuromancer

Registriert seit: 8. Aug 2003
62 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: [XML] for-each Schleife

  Alt 3. Nov 2006, 11:10
Zitat von sakura:
Nicht ganz, da das nur das 5. Element erreicht, aber nicht jedes 5.
XML-Code:
<xsl:if test="position() mod 5 = 0">
   <hr />
</xsl:if>
Nicht ganz, denn er will ja einen Zeilenumbruch und keine Line... also
statt <hr />.

Aber du hast natürlich vollkommen recht. Thank God it's friday...
(Auf dem Nachhauseweg ist mir der Fehler auch eingefallen...)

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: [XML] for-each Schleife

  Alt 3. Nov 2006, 11:38
Perfekt. Nur warum werden die Attribute für <td> nicht berücksichtigt:
XML-Code:
<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>
Und noch was:
XML-Code:
      <xsl:apply-templates select="Kontakt">
        <xsl:sort select="concat(Name, Vorname)"/>
      </xsl:apply-templates>
Wie kann ich das gleiche hier erreichen? Kontakt sieht so aus:
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>
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: [XML] for-each Schleife

  Alt 3. Nov 2006, 11:44
Hallo Michael,

wenn du mit <xsl:element name="td"> arbeitest, dann wird es funktionieren.

Grüße vom marabu
  Mit Zitat antworten Zitat
Neuromancer

Registriert seit: 8. Aug 2003
62 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: [XML] for-each Schleife

  Alt 3. Nov 2006, 11:46
Zitat von Luckie:
Perfekt. Nur warum werden die Attribute für <td> nicht berücksichtigt:
Ich glaube, du mischst hier "normales" HTML mit CSS.
Probier mal folgendes:
<xsl:attribute name="style">border:1px solid black;</xsl:attribute> ungetestet.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: [XML] for-each Schleife

  Alt 3. Nov 2006, 11:51
Geht. Nur bei der Tabelle ignoriert er das collapse:
XML-Code:
<table>
<xsl:attribute name="style">border:1px solid black collapse;</xsl:attribute>
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Neuromancer

Registriert seit: 8. Aug 2003
62 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: [XML] for-each Schleife

  Alt 3. Nov 2006, 11:51
Zitat von marabu:
wenn du mit <xsl:element name="td"> arbeitest, dann wird es funktionieren.
Hallo marabu,

hat denn <xsl:element> bei <xslutput method="HTML" /> überhaupt eine Wirkung? Ich dachte bis jetzt immer, <xsl:element> sei ausschließlich für die Transformation nach XML vorbehalten...?

Gruß
  Mit Zitat antworten Zitat
Neuromancer

Registriert seit: 8. Aug 2003
62 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: [XML] for-each Schleife

  Alt 3. Nov 2006, 11:54
Zitat von Luckie:
Geht. Nur bei der Tabelle ignoriert er das collapse:
Könnte browserspezifisch sein. Auf welchen Browsern getestet? Bitte denk dran, dass der IE von CSS 2.0-Konformität nicht besonders viel hält (bis Version 6, bei der 7 soll's ja besser sein).

Gruß
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 Uhr.
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