Marc Reichelt: XHTML mit PHP DOM validieren

Beitrag lesen

Hi wahsaga,

Dabei bekomme ich, zu meiner Überraschung, folgende Meldung:

Warning: DOMDocument::validate(): standalone: body declared in the external subset contains white spaces nodes in [...]

Wenn ich dann die white spaces zwischen body und p eliminiere, wird das Dokument als valide angesehen.

Was habe ich verpasst? In XHTML 1.0 Strict hat mir doch bisher kein Validations-Service white space im Body angemeckert?
Darf ich ein XHTML-Dokument etwa nicht mehr schön lesbar formatieren ...?

Ich finde das nicht gerade als Überraschung - alle Inhalte müssen in XHTML Strict in die entsprechenden Elemente (<p>, <div> usw.) gesteckt werden. Wenn nun (gemäß der Definition von HTML/XHTML) da mehrere Whitespace-Zeichen stehen, werden diese als ein Leerzeichen gewertet - es sei denn, man schaltet den XML Parser in den Modus, dass er diese Whitespace-Zeichen ignorieren soll.

Das könnte laut der von dir verlinkten Seite gehen, indem man die Eigenschaft preserveWhiteSpace des DOMDocument-Objekts auf false setzt - denn sie ist standardmäßig auf true.

Also (ungetestet):

$myDOM = new DOMDocument();  
$myDOM->preserveWhiteSpace = false;  
$myDOM->loadHTML('blalabersülz');  
$myDOM->validate();

Grüße

Marc Reichelt || http://www.marcreichelt.de/

--
Linux is like a wigwam - no windows, no gates and an Apache inside!
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)