XML-File in Objekt deserialisieren
Christian S.
- php
0 Vinzenz Mai0 Christian S.0 dedlfix
Hallo,
ich würde gerne eine XML Datei in ein PHP Objekt deserialisieren.
Wie ist das möglich? Wenn ich google, finde ich immer nur Java oder C# bezogene Themen.
Gruß!
Hallo Christian,
ich würde gerne eine XML Datei in ein PHP Objekt deserialisieren.
Wie ist das möglich?
suchst Du simplexml_load_file()?
Wenn ich google, finde ich immer nur Java oder C# bezogene Themen.
Ich schaue zuerst in Handbüchern nach, bevor ich $suchmaschine befrage.
Freundliche Grüße
Vinzenz
Hi,
suchst Du simplexml_load_file()?
Ganz genau..
Etwas komischer Name halt...
Ich hätte jetzt eher sowas erwartet wie:
$serializer = new XmlSerializer();
$obj = $serializer->deserialize('file.xml');
Naja..
Nur noch eins:
Wenn ich Umlaute zwischen meinen Xml Tags hab, dann krachts...
parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xF6 0x6E 0x65 0x20 in
Aber Umlaute gehören doch zu UTF-8 !?
Gebe ich im XML File stattdessen
<?xml version="1.0" encoding="ISO-8859-1" ?>
an, dann klappt es zwar, aber aus den Umlauten wird ein ganz komisches Zeichen, bzw. mehrere... auch im Quelltext.
Wie umschifft man sowas?
Gruß!
echo $begrüßung;
Wenn ich Umlaute zwischen meinen Xml Tags hab, dann krachts...
parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xF6 0x6E 0x65 0x20 in
Aber Umlaute gehören doch zu UTF-8 !?
Natürlich, kodiere deine Zeichen gemäß UTF-8 und nicht ISO-8859-1, wenn du die XML-Datei als UTF-8-kodiert deklarierst oder keine Angaben machst, was dann per default UTF-8 heißt.
Gebe ich im XML File stattdessen
<?xml version="1.0" encoding="ISO-8859-1" ?>
Das ist eine Alternative. ISO-8859-1 verwenden und als ISO-8859-1 deklarieren.
an, dann klappt es zwar, aber aus den Umlauten wird ein ganz komisches Zeichen, bzw. mehrere... auch im Quelltext.
Ja, das haben alle XML-Verarbeiter so an sich. Sie arbeiten intern mit UTF-8.
Wie umschifft man sowas?
Die Ausgabekodierung lässt sich nach meinem Wissen bei SimpleXML nicht einstellen. Entweder du stellst dich komplett auf UTF-8 um oder kodierst dir die Ausgabe so um, wie du sie gern hättest.
echo "$verabschiedung $name";