我无法从此XML文件中提取“ ST1”的到达时间。
我正在使用的xml文件在这里:
<timetable version="2.2" xmlns="http://www.railml.org/schemas/2013" id="timetable">
<timetablePeriods>
<timetablePeriod startDate="2001-12-24Z" endDate="2099-12-26Z" id="SCHS1" description="Monday to Friday"/>
</timetablePeriods>
<operatingPeriods>
<operatingPeriod timetablePeriodRef="SCHS1" startDate="2001-12-24Z" endDate="2099-12-25Z" id="opS1" description="JS1"/>
</operatingPeriods>
<trainParts>
<trainPart trainLine="JS1" trainNumber="S1" timetablePeriodRef="SCHS1" id="TS1_S1_1" description="JS1">
<formationTT formationRef="fTS1"/>
<operatingPeriodRef ref="opS1"/>
<ocpsTT>
<ocpTT ocpRef="ST1" ocpType="stop">
<times arrival="01:30:00" departure="01:30:30" scope="scheduled"/>
<sectionTT>
<trackRef dir="down" ref="SEC1634"/>
<trackRef dir="down" ref="SEC1378"/>
</sectionTT>
</ocpTT>
<ocpTT ocpRef="ST2" ocpType="stop">
<times arrival="01:35:00" departure="01:35:00" scope="calculated"/>
<sectionTT>
<trackRef dir="down" ref="SEC1370"/>
<trackRef dir="down" ref="SEC1327"/>
<trackRef dir="down" ref="SEC2850"/>
<trackRef dir="down" ref="SEC2837"/>
<trackRef dir="down" ref="SEC1336"/>
</sectionTT>
</ocpTT>
<ocpTT ocpRef="ST3" ocpType="stop">
<times arrival="01:38:00" departure="01:38:00" scope="calculated"/>
<sectionTT>
<trackRef dir="down" ref="SEC1385"/>
</sectionTT>
</ocpTT>
</ocpsTT>
</trainPart>
</trainParts>
</timetable>
从网上的一些建议中,我正在使用此xpath查询来尝试获取包含属性“ ST1”的XML,但是它一直在返回空数组。
<?php
$xml = simplexml_load_file('filepath_to_xml.xml') or die("Cannot find file");
$timetableStartStation = $xml->xpath('//timetable/trainParts/trainPart/ocpsTT/ocpTT[@ocpRef="ST1"]');
$timetableEndStation = $xml->xpath('//timetable/trainParts/ocpsTT/ocpTT[@ocpRef="ST3"]/parent::*');
print_r($timetableStartStation);
?>
但是,print_r()继续打印
Array()
没有别的。绝对可以正确加载xml文件,因为使用$ xml变量执行print_r会按预期方式打印完整的simpleXMLElement。
我的xpath语句是否有问题,或者我是否需要使用另一种方法使用站名来分隔xml块?