# DTD + XML = XSL



## MacGyver (28. Jan 2007)

Ich hab gerade folgende DTD und XML erstellt. Nun möchte ich sie gerne wie IE im Browser ausgeben, aber irgendwie bekomme ich die passende XSL nicht auf den Schirm. 


```
<?xml version="1.0" encoding="ISO-8859-1"?>

<!ELEMENT partner (firma+)>

<!ELEMENT firma (adresse+, kontakt+)>
<!ATTLIST firma
	name CDATA #REQUIRED
	rechtsform CDATA #REQUIRED
	gerichtsstand CDATA #REQUIRED>
	
<!ELEMENT adresse EMPTY>
<!ATTLIST adresse
	plz CDATA #REQUIRED
	ort CDATA #REQUIRED
	strasse CDATA #REQUIRED>
	
<!ELEMENT kontakt EMPTY>
<!ATTLIST kontakt
	telefon CDATA #REQUIRED
	fax CDATA #REQUIRED
	email CDATA #REQUIRED>
```


```
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="PartnerAtt.xsl"?>
<!DOCTYPE partner SYSTEM "PartnerAtt.dtd">

<partner>
  <firma name="Otto" rechtsform="GmbH" gerichtsstand="Berlin">
    <adresse plz="D-12345" ort="Winterstadt" strasse="Eulenburg 6" />
    <adresse plz="D-54321" ort="Frühlingshausen" strasse="Volgershall 1" />
    <kontakt telefon="0123-456789" fax="0123-456780" email="info@otto-winterstadt.com" />
  </firma>
  <firma name="Meyer" rechtsform="AG" gerichtsstand="Hamburg">
    <adresse plz="D-67890" ort="Sommerberg" strasse="Alsterweg 18" />
    <adresse plz="D-09876" ort="Bad Herbststedt" strasse="Vogelsburg 2" />
    <kontakt telefon="0987-123456" fax="0987-123450" email="support@meyer-sommerberg.de" />
  </firma>
</partner>
```

Traut sich jemand? :bahnhof: [/quote]


----------



## byte (28. Jan 2007)

*Die* passende XSL ? ???:L Es gibt unendlich viele Möglichkeiten, XSL Templates für die XML-Struktur zu bauen. Woher sollen wir wissen, was Du von den Daten auf welche Weise anzeigen willst? Also stell mal ne konkrete Frage, was Du nicht verstehst.


----------



## MacGyver (28. Jan 2007)

Also ich möchte im Browser gerne anzeigen lassen...


Firma (Name) - Rechtsforum (Rechtsform) - Gerichtsstand (Gerichtsstand) --- Adresse --- Kontakt

und darunter jeweils die Daten aus der XML. Also müßten es theor. 2 Einträge sein unter Firma,
Rechtsform und Gerichsstand und unter Adresse/Kontakt jeweils bei Adressen/Kontakt komplett.


----------



## KSG9|sebastian (28. Jan 2007)

Hm..also das kriegste doch selbst auch hin 
Das einzige was du dafür brauchst ist ein xsl:foreach und xsl:element bzw. xsl:attribute

foreach über firma
alle daten ausgeben
foreach über adresse
adressen ausgeben
end foreach
end foreach

und über xsl:element halt ne tabelle erzeugen, für jeden eintrag ne neue reihe und für jedes detail eine spalte


----------



## Guest (28. Jan 2007)

KSG9|sebastian hat gesagt.:
			
		

> Hm..also das kriegste doch selbst auch hin


Hab bisher nur mit Elemeten in einer XSL gearbeitet, vielleicht bin ich deshalb zu paddelig dazu...  :autsch:


----------



## byte (29. Jan 2007)

Zu faul triffts wohl eher. Guck Dir das Tutorial hier an:

http://www.w3schools.com/xsl/xsl_for_each.asp

Danach sollte es absolut kein Problem mehr sein, die Aufgabe zu lösen.


----------

