PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : XML-Datei mit CSS formatieren



The Best Isaac
27.10.2008, 10:24
Hi,

ich sitz gerade in der Schule und wir werden gerade im Fach XML unterrichtet. Unser Lehrer hat uns eben eine Aufgabe gestellt, bei der es darum geht, eine XML-Datei mit CSS zu formatieren.

Die XML-Datei sieht folgendermaßen aus:


<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet type="text/css" href="kurs-style.css" ?>

<kurs>
<titel>Einführung in XML</titel>
<datum>23.05.2005-20.06.2005</datum>
<themen>
<thema>Überblick</thema>
<thema>XML entwickeln</thema>
<thema>DTD entwickeln</thema>
<thema class="wichtig">Darstellung von XML mit XSL</thema>
<thema>XML und <hervorhebung>Java</hervorhebung></thema>
</themen>
<beschreibung>XML wird umfassend behandelt. Von den Grundlagen bis zur
Programmierung mit <hervorhebung>Java</hervorhebung>.</beschreibung>
</kurs>

Die Formatierung an sich bekomm ich hin, allerdings gibt es ein Problem bei

<thema class="wichtig">Darstellung von XML mit XSL</thema>
welches wir in fetter Schrift formatieren sollen.

Ich hab in meiner CSS-Datei also folgendes stehen:


thema.wichtig
{
font-weight: bold;
}

Im Internet Explorer 6 wird mir das ganze auch fett dargestellt. Wenn ich die XML-Datei aber im Firefox 2 öffne, passiert nichts.

Ich hab jetzt leider nicht genug Ahnung von XML oder CSS und unser Lehrer leider auch nicht... :rolleyes:

Weiß jemand von euch vielleicht, woran das liegen könnte?

drunken monkey
27.10.2008, 11:06
Also für mich sieht das komplett korrekt aus, tut mir leid.
Ein verzweifelter Versuch wäre es, statt "thema.wichtig" erst "kurs themen thema.wichtig" und dann ".wichtig" zu nehmen, oder ein "!important" hinzuzufügen (also "font-weight: bold !important;").
Aber das ist mehr willkürliches Rumprobieren als etwas mit irgendeinem konkreten Grund...*Kopfkratzt*

dead_orc
27.10.2008, 12:23
Poste doch einfach mal dein gesamtes CSS, vielleicht erkennt man dann den Fehler.

Manni
27.10.2008, 13:17
Du könntest es mit thema[class=wichtig] versuchen.

The Best Isaac
27.10.2008, 15:25
@Mog: Habe beide Vorschläge von dir schon zuvor ausprobiert, hat beides nichts gebracht.

@Manni: Genau das war's. Haben das im Unterricht dann doch noch herausgefunden.
Wie wir dann auf SelfHTML (http://de.selfhtml.org/xml/darstellung/css.htm) nachgelesen haben (beim Punkt "Beachten Sie").
Insofern hält sich der Firefox strikter an den Standard (http://www.w3.org/Style/styling-XML) (siehe "Class attributes"). Problem ist hier aber, dass dann der IE nicht damit klar kommt.

Naja, wieder was gelernt. War glaube ich das erste Mal in dem Fach. xD

Manni
27.10.2008, 21:39
@Manni: Genau das war's. Haben das im Unterricht dann doch noch herausgefunden.
Wie wir dann auf SelfHTML (http://de.selfhtml.org/xml/darstellung/css.htm) nachgelesen haben (beim Punkt "Beachten Sie").
Insofern hält sich der Firefox strikter an den Standard (http://www.w3.org/Style/styling-XML) (siehe "Class attributes"). Problem ist hier aber, dass dann der IE nicht damit klar kommt.

Dann benutz halt beides *shrug*


thema[class=wichtig],
thema.wichtig {
fubar....
}

The Best Isaac
28.10.2008, 16:59
Dann benutz halt beides *shrug*
Ja, soweit kann ich auch noch denken. ;)

Freezy
29.10.2008, 15:19
Ich denke das hätte es auch getan. Bin mir aber nicht ganz sicher:


thema.wichtig, thema .wichtig {
}

The Best Isaac
29.10.2008, 18:25
Ich denke das hätte es auch getan. Bin mir aber nicht ganz sicher:


thema.wichtig, thema .wichtig {
}

Hab's ausprobiert, geht aber nicht. Zumal ja auch thema[class=wichtig] richtiger ist. Das Problem ist ja auch jetzt erledigt, ich mach's so, wie Mog schon vorgeschlagen hat. :)

mitaki
31.10.2008, 15:18
Liegt daran, dass es in XML keine Klassen gibt. Dass class in HTML als Klasse verwendet wird ist nämlich eine Sonderbehandlung.

Von daher kann nur [class=className] funktionieren. Das funktioniert im IE6 natürlich nicht, weil der keine Attributselektoren kennt, im gegensatz zu IE7.

The Best Isaac
01.11.2008, 01:05
Von daher kann nur [class=className] funktionieren. Das funktioniert im IE6 natürlich nicht, weil der keine Attributselektoren kennt, im gegensatz zu IE7.
Gut zu wissen, dass es wenigstens der IE7 kann. Ich selbst konnte es in der Schule nur mit IE6 testen. Danke für die Information. :)

Wenn ich daran denk, dass ich mich in nächster Zeit sowieso mal näher mit dem Thema Webprogrammierung/-gestaltung auseinandersetzen werde, will ich gar nicht wissen, was da noch alles auf mich zu kommt, an nicht unterstützten Standards oder sonstigen Browser-spezifischen Sachen. >_>