Ich versuche, Stop-Daten aus dem OCTranspo Feed auf einem Dashboard zu Hause zu erhalten. Die OCTranspo API ermöglicht es Ihnen, diese Daten, die ich erfolgreich in PHP ausgeführt habe, zu erhalten.Parse SOAP XML-Feed in PHP
Hier ist eine Kopie der Antwort, dass ich erhalte:
<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>
<getnexttripsforstopresponse xmlns="http://octranspo.com">
<getnexttripsforstopresult>
<stopno xmlns="http://tempuri.org/">9085</stopno>
<stoplabel xmlns="http://tempuri.org/">FERNBANK BRIGHTSIDE</stoplabel>
<error xmlns="http://tempuri.org/">
<route xmlns="http://tempuri.org/">
<routedirection>
<routeno>61</routeno>
<routelabel>Terry Fox</routelabel>
<direction>Westbound</direction>
<error>
<requestprocessingtime>20171222231738</requestprocessingtime>
<trips>
<trip>
<tripdestination>Stittsville</tripdestination>
<tripstarttime>21:57</tripstarttime>
<adjustedscheduletime>1</adjustedscheduletime>
<adjustmentage>0.82</adjustmentage>
<lasttripofschedule>false</lasttripofschedule>
<bustype>6LB - 60</bustype>
<latitude>45.248670</latitude>
<longitude>-75.912157</longitude>
<gpsspeed>48.9</gpsspeed>
</trip>
<trip>
<tripdestination>Stittsville</tripdestination>
<tripstarttime>22:27</tripstarttime>
<adjustedscheduletime>35</adjustedscheduletime>
<adjustmentage>0.47</adjustmentage>
<lasttripofschedule>false</lasttripofschedule>
<bustype>6EB - 60</bustype>
<latitude>45.343510</latitude>
<longitude>-75.820002</longitude>
<gpsspeed>74.1</gpsspeed>
</trip>
<trip>
<tripdestination>Stittsville</tripdestination>
<tripstarttime>22:57</tripstarttime>
<adjustedscheduletime>69</adjustedscheduletime>
<adjustmentage>0.88</adjustmentage>
<lasttripofschedule>false</lasttripofschedule>
<bustype>6EB - 60</bustype>
<latitude>45.419260</latitude>
<longitude>-75.656651</longitude>
<gpsspeed>40.0</gpsspeed>
</trip>
</trips>
</error>
</routedirection>
</route>
</error>
</getnexttripsforstopresult>
</getnexttripsforstopresponse>
</soap:body>
</soap:envelope>
ich diese Antwort in PHP lesen müssen, und es Ausgabe 'Route Label' haben, ‚Route Nummer 'und' Richtung ', sowie jede der' adjustedscheduletime 'für jede der drei Reisen, die aufgeführt sind.
Ich kann die Antwort fein laden, aber ich kann nicht die PHP-Seite, um den XML-Feed zu analysieren.
Hier ist, was ich versucht habe, so weit:
<?php
$mySoapResponse=file_get_contents('https://api.octranspo1.com/v1.2/GetNextTripsForStop?appID={ID}&apiKey={key}&routeNo=61&stopNo=9085');
echo $mySoapResponse;
?>
<br>
<hr>
<br>
<?php
// Loads the XML
$soap = simplexml_load_string($mySoapResponse);
$soap->registerXPathNamespace('ns1', 'http://raspberrypi.local/');
// Grabs the trips
$trips = $soap->xpath('/ns1:getnexttripsforstopresponse/ns1:getnexttripsforstopresult/ns1:error/ns1:route/ns1:routedirection/ns1:error/ns1:trips');
$label = $soap->xpath('/ns1:getnexttripsforstopresponse/ns1:getnexttripsforstopresult/ns1:stoplabel');
echo $label[0];
//$trips = $xml->children('soap', true)->Body->getnexttripsforstopresponse->getnexttripsforstopresult->error->route->routedirection->error->trips->trip;
// Take the posts and generate some markup
foreach ($trips as $trip)
{
echo '
<p>' . $trip->tripstarttime . '</p>
<p>' . $trip->adjustedscheduletime . '</p>
<p>' . $trip->bustype . '</p>
';
}
?>
https://stackoverflow.com/questions/4194489/how-to-parse-soap-xml - Was haben Sie versucht? –