Hallo, habe als ziemlicher XML/XSLT Newbie folgendes Problem, bei dem mir hoffentlich jemand helfen kann.
Die XML-Datei hat diesen Inhalt:
Die "... " dienen nur der Abkürzung ( XML-Dokument ist well-formed ).
Viele Bücher der XML-Datei haben keine Kapitel-Angaben, die sollen auch nicht weiter berücksichtigt werden sprich aussortiert- weiterhin sind die einzelnen Kapitel leider nicht sortiert.
Der Output sollte folgende Form haben:
Buch_____________________Kapitel______Seitenanzahl
Das Basiswissen der Chemie______1.0_______12
_____________________________1.1_______19
_____________________________2.0_______23
_____________________________...________...
Chemie, 2 Bände_______________1.0________24
_____________________________2.0________20
_____________________________2.1________11
_____________________________..._________...
Mit
komme ich an alle Bücher mit Kapitelangaben - so weit, so gut .
Leider komme ich mit
<xsl:value-of select="/kap/@kapnr"/>
nur zum ersten aufgeführten Kapitel - ich benötige aber eine Auflistung aller vorhandenen Kapitel des jeweiligen Buches - des Weiteren wie würde dann die Sortierung mit xsl:sort aussehen, dass alle Kapitel richtig geordnet in der Tabelle stehen.
Ich hoffe meine Problembeschreibung ist einigermassen verständlich :-) - wäre über jeden Tipp von euch sehr dankbar.
Vielen Dank im Voraus!
Karsten
Die XML-Datei hat diesen Inhalt:
HTML Code:
<?xml version="1.0" encoding="ISO-8859-1"?> <Bücherliste> <Kategorie name="Fachbücher"> <Unterkategorie name="Naturwissenschaften"> <Buch name="Das Basiswissen der Chemie" preis="59,90"> <Unterteilung name="Kapitel"> <kap kapnr="1.0" seitenanzahl="12"/> <kap kapnr="2.1" seitenanzahl="28"/> <kap kapnr="1.1" seitenanzahl="19"/> <kap kapnr="2.0" seitenanzahl="23"/> </Unterteilung> </Buch> <Buch name="Biochemie" preis="49,90"> <Unterteilung name="Seiten"> <Seiten name="836"> </Unterteilung> </Buch> <Buch name="Chemie, 2 Bände"> preis="15,00"> <Unterteilung name="Kapitel"> <kap kapnr="1.0" seitenanzahl="24"/> <kap kapnr="3.2" seitenanzahl="18"/> <kap kapnr="2.1" seitenanzahl="11"/> <kap kapnr="2.0" seitenanzahl="20"/> </Buch> </Unterkategorie> <Unterkategorie name="Sozialwissenschaften"> ... </Unterkategorie> </Kategorie> </Bücherliste>
Viele Bücher der XML-Datei haben keine Kapitel-Angaben, die sollen auch nicht weiter berücksichtigt werden sprich aussortiert- weiterhin sind die einzelnen Kapitel leider nicht sortiert.
Der Output sollte folgende Form haben:
Buch_____________________Kapitel______Seitenanzahl
Das Basiswissen der Chemie______1.0_______12
_____________________________1.1_______19
_____________________________2.0_______23
_____________________________...________...
Chemie, 2 Bände_______________1.0________24
_____________________________2.0________20
_____________________________2.1________11
_____________________________..._________...
Mit
Code:
<?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> <body> <table border="1"> <tr> <th align="left">Buch</th> <th align="left">Kapitel</th> <th align="left">Seitenanzahl</th> </tr> <xsl:for-each select="Bücherliste/Kategorie/Unterkategorie/Buch/Unterteilung[@name='Kapitel']"> <tr> <td> <xsl:value-of select="../@name"/> </td>
Leider komme ich mit
<xsl:value-of select="/kap/@kapnr"/>
nur zum ersten aufgeführten Kapitel - ich benötige aber eine Auflistung aller vorhandenen Kapitel des jeweiligen Buches - des Weiteren wie würde dann die Sortierung mit xsl:sort aussehen, dass alle Kapitel richtig geordnet in der Tabelle stehen.
Ich hoffe meine Problembeschreibung ist einigermassen verständlich :-) - wäre über jeden Tipp von euch sehr dankbar.
Vielen Dank im Voraus!
Karsten
Comment