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>