SimpleXML-Objekte in Strings für alle Kontexte konvertieren
Beim Arbeiten mit XML bietet die Verwendung der SimpleXML-Erweiterung in PHP bequemen Zugriff auf XML-Daten. In bestimmten Szenarien ist es jedoch erforderlich, SimpleXML-Objekte unabhängig von ihrem Kontext in Zeichenfolgen zu konvertieren.
Betrachten Sie beispielsweise das folgende XML:
<channel> <item> <title>This is title 1</title> </item> </channel>
Verwenden Sie SimpleXML, um den Titel abzurufen als Zeichenfolge funktioniert einwandfrei:
$xml = simplexml_load_string($xmlstring); echo $xml->channel->item->title;
Es treten jedoch Schwierigkeiten auf, wenn versucht wird, den Titel in verschiedenen Kontexten als Zeichenfolge zu behandeln, z. B. wenn Hinzufügen zu einem Array:
$foo = array( $xml->channel->item->title );
In diesem Fall wird ein unerwartetes SimpleXML-Objekt anstelle einer Zeichenfolge zum Array hinzugefügt. Um dieses Problem zu lösen, ziehen Sie die folgenden Methoden in Betracht:
Typumwandlung von SimpleXML-Objekten in Strings:
$foo = array( (string) $xml->channel->item->title );
Typecasting des SimpleXML-Objekts in einen String explizit unter Verwendung von (string) intern ruft die Methode __toString() auf. Obwohl diese Methode nicht öffentlich zugänglich gemacht wird, um Störungen bei der SimpleXMLObject-Zuordnung zu vermeiden, bleibt sie über diese Technik zugänglich.
Das obige ist der detaillierte Inhalt vonWie kann ich SimpleXML-Objekte in PHP zuverlässig in Strings konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!