Funktioniert dieses XML File ?

TeeJay

Grünschnabel
Ich habe mal folgendes geschieben

Code:
<?xml version="1.0"  encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="lehrv.xsl"?>
<!DOCTYPE note SYSTEM "lehrv.dtd">
<lehrveranstalungen>
	<veranstaltung>
		<alg_info></alg_info>
		<abschluss></abschluss>
		<regelstudien_t></regelstudien_t>
		<beginn></beginn>
		<voraussetzungen>
			<vor_allgm></vor_allgm>
			<vor_besonders></vor_besonders>
		</voraussetzungen>
		<grundstudium>
			<faecher></faecher>
		</grundstudium>
		<hauptstudium>
			<faecher></faecher>
		</hauptstudium>
		<studienrichtung></studienrichtung>
		<praxissem></praxissem>
		<diplomsem></diplomsem>
		<einsatzmglk></einsatzmglk>
	</veranstaltung>
</lehrveranstalungen>

das ist jetzt ein dummi. Nun habe ich diesen Dummi mit Daten gefüllt. Fett hervorgehoben.

Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="lehrv.xsl"?>
<!DOCTYPE note SYSTEM "lehrv.dtd">
<lehrveranstalungen>
	<veranstaltung>
		<alg_info></alg_info>
		<abschluss></abschluss>
		<regelstudien_t></regelstudien_t>
		<beginn></beginn>
		<voraussetzungen>
			<vor_allgm>hallo</vor_allgm>
                        <vor_allgm>hallo2</vor_allgm>
                        <vor_allgm>hallo3</vor_allgm>
			<vor_besonders></vor_besonders>
		</voraussetzungen>
		<grundstudium>
			<faecher></faecher>
		</grundstudium>
		<hauptstudium>
			<faecher></faecher>
		</hauptstudium>
		<studienrichtung></studienrichtung>
		<praxissem></praxissem>
		<diplomsem></diplomsem>
		<einsatzmglk></einsatzmglk>
	</veranstaltung>
</lehrveranstalungen>

ich habe jetzt ein xsl sheet mit ich jetzt die Daten des gesamten xml files auslese. Allerdings habe ich ein Problem mit dem auslesen des Fett markierten Teil. Es wird immer nur der erste Punkt ausgelesen und die restlichen beiden werden einfach geschluckt.

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 style="font-family:Arial,helvetica,sans-serif;font-size:12pt;">
    <center>
    <table border="0" cellspacing="1" cellpadding="5" width="90%" style="border:1px solid black;">
    <tr bgcolor="#D0D0D0"><td><font size="+2">Lehrveranstaltungen</font></td></tr>
    <xsl:for-each select="lehrveranstalungen/veranstaltung">
    <tr bgcolor="#f8f8f8">
      <td><b>Name des Studiums: </b><u><i><xsl:value-of select="name"/></i></u></td>      
    </tr>
    <tr bgcolor="#f8f8f8">
      <td><b>Allgemeine Informationen: </b><xsl:value-of select="alg_info"/></td>      
    </tr>
    <tr bgcolor="#f8f8f8">
      <td><b>Abschluss:</b> <xsl:value-of select="abschluss"/></td>      
    </tr>
    <tr bgcolor="#f8f8f8">
      <td><b>Regelstudienzeit:</b> <xsl:value-of select="regelstudien_t"/></td>      
    </tr>
    <tr bgcolor="#f8f8f8">
      <td><b>Beginn:</b> <xsl:value-of select="beginn"/></td>      
    </tr>
    <tr bgcolor="#f8f8f8">
      <td><b>Voraussetzungen:</b><br />
      <ul>
          <li><xsl:value-of select="voraussetzungen/vor_allgm"/></li> 
          <li><xsl:value-of select="voraussetzungen/vor_besonders"/></li>                 
      </ul>
      </td>      
    </tr>
    <tr bgcolor="#D0D0D0"><td></td></tr>
    </xsl:for-each>
    
    </table>
    </center>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

ich hahbe jetzt noch nicht so viel Ahnung wie man das machen kann und vor allen Dingen, ob man es so machen kann. Würde mich freuen wenn mir jemand helfen kann.
 
wenn ich den das jetzt so schreibe werden alle 3 elemente angezeit. allerdings soll das von alleine funtionieren.

Code:
<tr bgcolor="#f8f8f8">
      <td><b>Voraussetzungen:</b><br />
      <ul>
          <li><xsl:value-of select="voraussetzungen/vor_allgm[1]"/></li> 
          <li><xsl:value-of select="voraussetzungen/vor_allgm[2]"/></li>
          <li><xsl:value-of select="voraussetzungen/vor_allgm[3]"/></li>
          <li><xsl:value-of select="voraussetzungen/vor_besonders"/></li>                 
      </ul>
      </td>      
    </tr>
 
Code:
<ul>
  <xsl:apply-templates select="voraussetzungen/vor_allgm"/>
  <li><xsl:value-of select="voraussetzungen/vor_besonders"/></li>                 
</ul>

und dann

Code:
<xsl:template match="vor_allgm">
  <li><xsl:apply-templates/></li>
</xsl:template>

Versuch's mal allgemein mit separaten Templates für die einzelnen Elemente und sieh dir mal das XSLT-Tutorial der W3School an.

Beste Grüße
 

Neue Beiträge

Zurück