Es gibt eine Menge Antworten auf meine Frage zum Beispiel Parse XML namespaces with php SimpleXML Aber ich kann nicht verstehen, wie Sie den Code anpassen, um Wert in meinem Fall zu lesen? Ich habe einen Namespace m: innerhalb eines Namespace soap: Ich brauche diese XML zu analysieren und nur den Wert 888-0000019749Parsen XML mehrere Namespaces mit PHP SimpleXML
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<m:SaveDocumentsResponse xmlns:m="http://www.cargo3.ru">
<m:return xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<m:Key>SaveDocuments</m:Key>
<m:List>
<m:Key>Order</m:Key>
<m:Properties>
<m:Key>Number</m:Key>
<m:Value xsi:type="xs:string">888-0000019749</m:Value>
<m:ValueType>string</m:ValueType>
</m:Properties>
<m:Properties>
<m:Key>CreateDate</m:Key>
<m:Value xsi:type="xs:dateTime">2016-05-23T20:56:50</m:Value>
<m:ValueType>dateTime</m:ValueType>
</m:Properties>
</m:List>
</m:return>
</m:SaveDocumentsResponse>
</soap:Body>
</soap:Envelope>
Auch parse an XML with SimpleXML which has multiple namespaces versucht, diesem Beispiel
$xml = simplexml_load_string($res, NULL, NULL, "http://schemas.xmlsoap.org/soap/envelope/");
$xml->registerXPathNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');
$xml->registerXPathNamespace('m', 'http://www.w3.org/2001/XMLSchema');
foreach($xml->xpath('//m:SaveDocumentsResponse') as $header)
{
var_export($header->xpath('//m:return')); // Should output 'something'.
}
arbeiten kann nicht verwalten extrahieren
wieder bin ich etwas fehlt ...
und wieder
echo $list = (string)$xml->children('soap', true)->Body->children('m', true)->SaveDocumentsResponse->return->List;
Ich brauche die kürzeste und einfachste Weg, um Wert zu extrahieren aus
<m:Value xsi:type="xs:dateTime">2016-05-23T20:56:50</m:Value>
Hallo, ich nicht wissen viel über SimpleXml dafür. Ich kann DomDocument verwenden – Richard
Hi! Jede Methode bringt mir etwas Erfahrung. Alle Arbeitsbeispiele sind willkommen. – vyazikov
Überprüfen Sie Beispiele unter der Dokumentation http://php.net/manual/en/domxpath.registernamespace.php – Richard