Страница 1 из 1

Помогите пожалуйста распарсить XML

Добавлено: Пт ноя 17, 2017 8:08 pm
Smolalex
СпойлерПоказать
<timetable station="Augsburg Hbf">
<s id="8807096385245091205-1711170803-8">
<tl f="N" t="p" o="07" c="RE" n="57014"/>
<ar pt="1711170846" pp="5" wings="-6266819635136457113-1711170803" ppth="München Hbf|München-Pasing|Mering|Mering-St Afra|Kissing|Augsburg-Hochzoll|Augsburg Haunstetterstraße"/>
<dp pt="1711170854" pp="5" ppth="Augsburg-Oberhausen|Gersthofen|Gablingen|Langweid(Lech)|Herbertshofen|Meitingen|Westendorf|Nordendorf|Mertingen Bahnhof|Bäumenheim|Donauwörth"/>
</s>
<s id="6725347231257922010-1711170801-6">
<tl f="N" t="p" o="07" c="RB" n="57893"/>
<ar pt="1711170822" pp="501" ppth="Schwabmünchen|Bobingen|Inningen|Augsburg Messe|Augsburg Morellstr."/>
</s>
<s id="3285990615539938881-1711170716-4">
<tl f="F" t="p" o="80" c="IC" n="2097"/>
<ar pt="1711170805" pp="4" ppth="Ulm Hbf|Neu-Ulm|Günzburg"/>
<dp pt="1711170807" pp="4" ppth="München-Pasing|München Hbf"/>
</s>
<s id="-7184453857839759572-1711170727-3">
<tl f="F" t="p" o="80" c="ICE" n="612"/>
<ar pt="1711170800" pp="1" ppth="München Hbf|München-Pasing"/>
<dp pt="1711170803" pp="1" ppth="Ulm Hbf|Stuttgart Hbf|Mannheim Hbf|Frankfurt(M) Flughafen Fernbf|Siegburg/Bonn|Köln Hbf|Düsseldorf Hbf|Duisburg Hbf|Essen Hbf|Bochum Hbf|Dortmund Hbf"/>
</s>
нужна только информация из тега tl и dp

Re: Помогите пожалуйста распарсить XML

Добавлено: Пт ноя 17, 2017 10:55 pm
Smolalex
Спасибо, сам справился

$xmlObject = new SimpleXMLElement($xmlData);

$node = $xmlObject->children();
$count=count($node);
for($i = 0; $i < $count; ++$i) {
$ppth=$node[$i]->dp['ppth'];
if (strpos($ppth,'München Hbf')){
$otpr=$node[$i]->dp['pt'];
$pattern = '/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/i';
$replacement = '$3.$2.20$1 $4:$5';
$date = preg_replace($pattern, $replacement, $otpr);
$pt=$node[$i]->dp['pt'];
$pp=$node[$i]->dp['pp'];
$c=$node[$i]->tl['c'];
$n=$node[$i]->tl['n'];
//$pt=$node[$i]->dp['pt'];
print_r($node[$i]->dp['pt']);
print_r($node[$i]->dp['ppth']);
say($date." платформа ".$pp." тип ".$c." номер ".$n." ".$node[$i]->dp['ppth']);
}

}