Einzelnen Beitrag anzeigen

torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Benoetige Hilfe bei der Erstellung einer XSL-Datei

  Alt 22. Apr 2007, 13:53
Hallo Wissende,

mein Wissen ueber XML und XSL ist leider begrenzt, aber ich habe ne Aufgabe erhalten, die mich echt ins Schwitzen bringt. Mir wurde ne XML-Datei geschickt, die ich mittels XSL darstellen soll. Diese Datei hat nicht etwa ueber 20000 Zeilen!

Nun zu meiner Frage. Die Datei ist so strukturiert, dass sich gewisse Abschnitte gegenseitig referenzieren. Ich poste mal einen Ausschnitt, zu dem ich folgende Fragen habe.

Ich muss aus Schedules ueber DateSeq die MatchNo(s) des Tages herausbekommen. Wenn ich die habe, muss ich ueber die Matches die Match(es) herausfiltern und die Namen der Spieler ueber die SpielerID zusammensuchen. Da mein Wissen ueber XSL doch eher begrenzt ist, habe ich bisher nur das hier, was mir die MatchNo(s) des Tages auflistet.
Delphi-Quellcode:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <head>
  </head>
  <body>
  <h3>Infos</h3>
  <table>
   <xsl:for-each select="Export/Schedules/Schedule">
    <xsl:sort select="DateSeq" order="ascending" data-type="text" />
     <xsl:if test="DateSeq='8'">
      <tr><td>Match:
       <xsl:value-of select="MatchNo" />
      </td></tr>
     </xsl:if>
   </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>
Hier das XML-Beispiel - stark eingekuerzt.

Delphi-Quellcode:
<Export>
  <DatabaseVersion>1.30.4</DatabaseVersion>
  <Players>
    <Player PlayerId="945d65f5-2583-4e04-a9d2-00828de8d8b4">
      <PlayerId>945d65f5-2583-4e04-a9d2-00828de8d8b4</PlayerId>
      <Upid>NULL</Upid>
      <Gender>M</Gender>
      <Surname>Safin</Surname>
      <FirstName>Marat</FirstName>
      <Initials>M </Initials>
      <Birthday>NULL</Birthday>
      <Country>RUS</Country>
      <Itfnumber>NULL</Itfnumber>
      <Ipin>NULL</Ipin>
      <ReduceName>NULL</ReduceName>
      <ScoreName>NULL</ScoreName>
      <ExternalId>S741</ExternalId>
      <Matricule>NULL</Matricule>
      <TitleId>-1</TitleId>
      <ValidSince>4/11/2007 11:59:59 AM</ValidSince>
      <DeathDate>NULL</DeathDate>
      <NameChanged>False</NameChanged>
      <Itfsurname>NULL</Itfsurname>
      <ItffirstName>NULL</ItffirstName>
      <Itfbirthday>NULL</Itfbirthday>
      <ExtSurname>Safin</ExtSurname>
      <ExtFirstName>Marat</ExtFirstName>
      <ExtBirthday>NULL</ExtBirthday>
      <LastConsentDate>2/21/2007 12:00:00 AM</LastConsentDate>
      <SoundsLike>S150M630</SoundsLike>
    </Player>
  </Players>
  <PlayerDatas>
    <PlayerData TournamentId="c1b6013e-dfc6-4290-a04a-9f02b8b5897a" PlayerId="945d65f5-2583-4e04-a9d2-00828de8d8b4">
      <TournamentId>c1b6013e-dfc6-4290-a04a-9f02b8b5897a</TournamentId>
      <PlayerId>945d65f5-2583-4e04-a9d2-00828de8d8b4</PlayerId>
      <ChRoom>False</ChRoom>
      <Origin>NULL</Origin>
      <SinglesProtRank>NULL</SinglesProtRank>
      <UseSinglesProt>False</UseSinglesProt>
      <DoublesProtRank>NULL</DoublesProtRank>
      <UseDoublesProt>False</UseDoublesProt>
      <PrstartDate>NULL</PrstartDate>
      <PrendDate>NULL</PrendDate>
      <DatePayment>NULL</DatePayment>
      <Balance>0</Balance>
    </PlayerData>
  </PlayerDatas>
  <Matches>
    <Match TournamentId="c1b6013e-dfc6-4290-a04a-9f02b8b5897a" EventId="3" MatchNo="19">
      <TournamentId>c1b6013e-dfc6-4290-a04a-9f02b8b5897a</TournamentId>
      <EventId>3</EventId>
      <MatchNo>19</MatchNo>
      <ScoringType>1</ScoringType>
      <FinalSetAdv>False</FinalSetAdv>
      <NumSets>3</NumSets>
      <Player1>9ca5e191-0922-4521-b8bc-8444b6411bc1</Player1>
      <Player1a>00000000-0000-0000-ffff-000000000000</Player1a>
      <Player2>b11c3f35-dccc-4297-9282-095678996a6f</Player2>
      <Player2a>00000000-0000-0000-ffff-000000000000</Player2a>
      <OfficialId>dc78ff2d-8dd9-4eda-b8d2-81c5bac760be</OfficialId>
      <Prog>R</Prog>
      <Winner>2</Winner>
      <DateStart>4/14/2007 1:15:24 PM</DateStart>
      <DateRes>4/14/2007 3:22:46 PM</DateRes>
      <Score>7/5 1/6 6/4</Score>
      <LongScore>7/5 1/6 6/4</LongScore>
      <ProcPrize>True</ProcPrize>
      <NumGames>NULL</NumGames>
      <DateSeq>2</DateSeq>
      <CourtId>2</CourtId>
      <MatchSeq>2</MatchSeq>
      <IsMoved>False</IsMoved>
      <ToFinish>False</ToFinish>
      <NotBefore>Followed By</NotBefore>
      <Process>R</Process>
      <RoundId>2</RoundId>
      <FreeTxt>NULL</FreeTxt>
      <ResultCode>N</ResultCode>
      <IsShow>False</IsShow>
      <Rrgroup>NULL</Rrgroup>
      <HeatRuleInEffect>False</HeatRuleInEffect>
    </Match>
  </Matches>
  <Schedules>
    <Schedule TournamentId="c1b6013e-dfc6-4290-a04a-9f02b8b5897a" EventId="1" MatchNo="2" DateSeq="9">
      <TournamentId>c1b6013e-dfc6-4290-a04a-9f02b8b5897a</TournamentId>
      <EventId>1</EventId>
      <MatchNo>2</MatchNo>
      <DateSeq>9</DateSeq>
      <ProgCourt>1</ProgCourt>
      <ProgSeq>2</ProgSeq>
      <NotBefore>
      </NotBefore>
      <FreeText>
      </FreeText>
      <ToFinish>False</ToFinish>
    </Schedule>
    <Schedule TournamentId="c1b6013e-dfc6-4290-a04a-9f02b8b5897a" EventId="1" MatchNo="3" DateSeq="9">
      <TournamentId>c1b6013e-dfc6-4290-a04a-9f02b8b5897a</TournamentId>
      <EventId>1</EventId>
      <MatchNo>3</MatchNo>
      <DateSeq>9</DateSeq>
      <ProgCourt>1</ProgCourt>
      <ProgSeq>3</ProgSeq>
      <NotBefore>
      </NotBefore>
      <FreeText>
      </FreeText>
      <ToFinish>False</ToFinish>
    </Schedule>
  </Schedules>
Danke
Tom
  Mit Zitat antworten Zitat