Mailinglisten-Archive |
Thomas Richter wrote: >>wo hast Du die Entities definiert? Wenn Du eine externe DTD >>verwendest, > das xml dokument ist ein xhtml dokument und komplett valide (html und > xml valide!). > > nun habe ich folgendes: > > <!DOCTYPE html ...> > <?xml version="1.0" ?> > <html> > <head> > <title>title</title> > </head> > <body> > <img src="xxx" title="schöner text" /> > </body> > </html> Die XML-Deklaration kommt nach oben. Als zweites kommt dann die Dokumenttypangabe, die Du hier abkürzt. Z.B.: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Hier müsste jetzt der Parser nachsehen, welche Entities ersetzt werden sollten. Bei näherem Hinsehen, stehen die aber nicht direkt drin sondern in einer weiteren Datei: http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent Das wäre also ein bisschen viel Aufwand für den Parser. Woher soll er aber das Entity ö kennen? Die sind für XHTML definiert und nicht für XML! Du hast jetzt mehrere Möglichkeiten. 1. Du wählst gleich einen Latin-1-Zeichensatz: <?xml version="1.0" encoding="ISO-8859-1"?> Dann kannst Du Dir die Entities sparen. (Beste Lösung) 2. Die packst den Inhalt der xhtml-lat1-Datei in Dein Dokument. (Sind ja nur 200 Zeilen.) 3. Du schreibst statt ö ö Diese Entities kannst Du direkt in XML verwenden. (Zweitbeste Lösung) Notfalls kann man ja mit str_replace vorher die Datei entsprechend präparieren und alle xhtml-Entities austauschen. Viele Grüße Peter
php::bar PHP Wiki - Listenarchive