phpbar.de logo

Mailinglisten-Archive

[php] XML parsen

[php] XML parsen

Tim Strehle tim at digicol.de
Mon Jun 21 12:58:23 CEST 2004


Hallo Jens, hallo Sven,

 > Nun erweisen sich beim Parsen die deutschen Sonderzeichen als
 > ein Problem.
 > Ich kann sie leider nicht als "ü" etc in das XML File
 > schreiben, den
 > dann bekomme ich einen Fehler beim parsen durch "&".
 > Und hier in Sydney(AU) steht mir leider nur englische Software
 > und Keyboards zur Verfuegung.
 > Was das direkte eingeben sehr umstaendlich macht "copy paste"
 > ist da sicher nicht sehr schoen.

ich zitiere mal aus http://www.xml.com/pub/a/98/08/xmlqna1.html :

In XML eingebaut sind nur

   &lt;    =  <
   &gt;    =  >
   &amp;   =  &
   &apos;  =  '
   &quot;  =  "

Genau für Dein Problem gibt's "Character References". Falls Dein XML in 
ISO-8859-1 ist, schreibst Du einfach:

   &#252;

für ein "ü" - die Zahlen kannst Du einfach in einer ASCII-Tabelle 
nachsehen. Falls Dein XML in UTF-8 ist, schreibst Du statt der 
ASCII-Zahl den Unicode-Codepoint.

Sven, Dein Vorschlag scheint mir nicht viel Sinn zu machen.

 > Erstelle eine "dateinname.dtd" mit folgendem Inhalt
 >
 > <!ENTITY uuml "uuml">
 >
 > dann bindest du die Datei in dein XML File ein
 >
 > <?xml version="1.0" encoding="iso-8859-1"?>
 > <!DOCTYPE test SYSTEM "../src/dtd/test.dtd">
 >
 > und dann kannst du auch "&uuml;" in deinem XML File benutzen.

Wenn Du Dir mal ansiehst, was ein XML-Parser damit macht (z.B. PHP's 
XML-Funktionen, Internet Explorer, xmllint auf der Kommandozeile), dann 
wirst Du feststellen, daß er das "&uuml;" im XML-Quelltext durch "uuml" 
ersetzt - definitiv kein "ü".

Jens, wenn Du gerne die HTML-Umlaut-Entities benutzen möchtest 
(einfacher zu merken als die ASCII-Codes), dann geht das so:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE test [
<!ENTITY uuml "&#252;">
]>
<test>&uuml;</test>

Gruß,
Tim

-- 
------------------------------------------------------------
Tim Strehle                           http://tim.digicol.de/
Digital Collections                   http://www.digicol.de/
------------------------------------------------------------

php::bar PHP Wiki   -   Listenarchive