Sagen wir, ich habe einige XML-ähnlicheein SimpleXML Objekt in einen String erzwingen, unabhängig vom Kontext
<channel>
<item>
<title>This is title 1</title>
</item>
</channel>
Der folgende Code tut, was ich in möchten, dass sie den Titel als String
$xml = simplexml_load_string($xmlstring);
echo $xml->channel->item->title;
gibt
Hier ist mein Problem. Der folgende Code behandelt den Titel nicht als Zeichenfolge in diesem Kontext, sodass ich ein SimpleXML-Objekt im Array anstelle einer Zeichenfolge erhalte.
$foo = array($xml->channel->item->title);
Ich habe wie diese
$foo = array(sprintf("%s",$xml->channel->item->title));
um daran zu arbeiten, aber das scheint hässlich.
Was ist die beste Methode, um ein SimpleXML-Objekt unabhängig vom Kontext zu einer Zeichenfolge zu erzwingen?
Ich habe mehrere Anfragen an PHP eingereicht etwas ähnliches zu implementieren für diese SOAP_SINGLE_ELEMENT_ARRAYS und würde andere ermutigen, dasselbe zu tun. SOAP_SINGLE_ELEMENT_ARRAYS erzwingt Elemente, die mehr als eine Zeichenfolge analysieren/enthalten können, immer nur als Zeichenfolgen. Natürlich, wie andere erwähnten, müssen Sie wissen, was Sie zurückbekommen, aber immer und immer wieder bin ich auf Probleme mit .NET SOAP-Servern gestoßen, für die die WSDL (nach den "magischen" Standardeinstellungen von .NET) jede Zeichenfolge als Prototypen erstellt hat gemischt oder ein Array von Strings. Anstelle von current() oder typecasting gibt das Bit nur eine Zeichenfolge zurück – conrad10781