I'm afraid I'm at a loss on how to parse this XML with namespaces and prefixes. Here's the SOAP reply I get from a Curl request:
<soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:body>
<getproductpricekonfigurationresponse xmlns="https://service.printapi.de/interface/">
<getproductpricekonfigurationresult>
<xs:schema id="ProduktPreisKonfiguration" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"></xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<produktpreiskonfiguration xmlns>
<produktkonfiguration diffgr:id="ProduktKonfiguration1" msdata:roworder="0" diffgr:haschanges="inserted">
<idobjekt>4</idobjekt>
<idformat>30</idformat>
<ustidentnr>
<objektpreisnetto>18.77</objektpreisnetto>
<mwstwert>6.01</mwstwert>
</ustidentnr>
</produktkonfiguration>
</produktpreiskonfiguration>
</diffgr:diffgram>
</getproductpricekonfigurationresult>
</getproductpricekonfigurationresponse>
</soap:body>
</soap:envelope>
If I wanted to echo for example the "objektpreisnetto" node, how would I do it?
Edit: here's some things I've tried (amongst others):
$xml = simplexml_load_string($soap);
$result = $xml->children('http://schemas.xmlsoap.org/soap/envelope/')
->children('https://service.printapi.de/interface/')
->getproductpricekonfigurationresult
->objektpreisnetto;
echo $result->objektpreisnetto;
That returns nothing, but I'm sure I'm not handling the children part correctly.
Here's an even more basic example I tried, which also returns nothing:
$xml = simplexml_load_string($soap);
foreach ($xml->children('http://schemas.xmlsoap.org/soap/envelope/') as $child)
{
echo "Child node: " . $child . "<br>";
}
Should that not at least return one child node? Any insight would be greatly appreciated!