- simplexml_load_string: documentation ( source)
<?php
$data = <<<DATA
<PportTimetable timetableID="20180124020740">
<Journey rid="201801247176474" uid="G76474" trainId="2H98" ssd="2018-01-24" toc="SN">
<OR tpl="BCKNMJC" act="TB" ptd="07:15" wtd="07:15" />
<IP tpl="BIRKBCK" act="T " pta="07:18" ptd="07:18" wta="07:17:30" wtd="07:18" />
<PP tpl="CRYSBRJ" wtp="07:20" />
<IP tpl="CRYSTLP" act="T " plat="1" pta="07:22" ptd="07:22" wta="07:21:30" wtd="07:22" />
<IP tpl="GIPSYH" act="T " pta="07:25" ptd="07:25" wta="07:24:30" wtd="07:25" />
<IP tpl="WNORWOD" act="T " plat="1" pta="07:28" ptd="07:28" wta="07:27:30" wtd="07:28" />
<PP tpl="WNORWDJ" wtp="07:29" />
<IP tpl="TULSEH" act="T " plat="3" pta="07:31" ptd="07:34" wta="07:31" wtd="07:34" />
<IP tpl="NDULWCH" act="T " pta="07:37" ptd="07:37" wta="07:36:30" wtd="07:37:30" />
<IP tpl="EDULWCH" act="T " pta="07:39" ptd="07:40" wta="07:39" wtd="07:40" />
<IP tpl="PKHMRYC" act="T " plat="2" pta="07:42" ptd="07:43" wta="07:42" wtd="07:43" />
<IP tpl="PCKHMQD" act="T " plat="1" pta="07:45" ptd="07:45" wta="07:45" wtd="07:45:30" />
<PP tpl="OLDKRDJ" wtp="07:46" />
<DT tpl="SBRMNDS" act="TF" pta="07:52" wta="07:52" />
</Journey>
<Journey rid="201801248980806" uid="Y80806" trainId="5G45" ssd="2018-01-24" toc="VT" trainCat="EE" isPassengerSvc="false">
<OPOR tpl="WVRMPTN" act="TB" plat="1" wtd="22:40" />
<PP tpl="WVRMTNJ" wtp="22:41:30" />
<PP tpl="WVRMSRJ" wtp="22:44" />
<OPDT tpl="OXLEYCS" act="TF" wta="22:47" />
</Journey>
</PportTimetable>
DATA;
$xml = simplexml_load_string($data);
$timetableId = $xml->attributes()->timetableID;
echo "Timetable id: " . $timetableId . "\n\r";
foreach ($xml->Journey as $Journey) {
echo "Journey data: " . $Journey["rid"] . "\n\r";
echo "Journey data: " . $Journey["uid"] . "\n\r";
echo "Journey data: " . $Journey["trainId"] . "\n\r";
echo "Journey data: " . $Journey["ssd"] . "\n\r";
echo "Journey data: " . $Journey["toc"] . "\n\r";
foreach ($Journey->children() as $child) {
if ($child->getName() === "IP") {
echo $child['tpl'] . PHP_EOL;
}
}
}