【发布时间】:2015-07-11 00:33:06
【问题描述】:
我有一个字符串,它提供了一个 XML 输出,现在我想捕获那个值。但问题是存在相同的变量,需要循环运行。
这是一种Shipping method活动跟踪,意味着逐步转移过程并输出
这是我得到的 XML:
<ArrayOfConsignmentTrack xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<ConsignmentTrack>
<ERROR/>
<DOCKNO>AB000000002</DOCKNO>
<TRANSIT_LOCATION>ANDHERI BRANCH OFFICE, MUMBAI</TRANSIT_LOCATION>
<ACTIVITY>In Transit to</ACTIVITY>
<EVENTDATE>13 Apr 2015</EVENTDATE>
<EVENTTIME>18:27:40</EVENTTIME>
<NEXT_LOCATION>ANDHERI BRANCH OFFICE</NEXT_LOCATION>
<TRACKING_CODE>T</TRACKING_CODE>
</ConsignmentTrack>
<ConsignmentTrack>
<ERROR/>
<DOCKNO>AB000000002</DOCKNO>
<TRANSIT_LOCATION>OKHLA BRANCH, OKHLA</TRANSIT_LOCATION>
<ACTIVITY>Picked up and Booking processed</ACTIVITY>
<EVENTDATE>13 Apr 2015</EVENTDATE>
<EVENTTIME>17:27:53</EVENTTIME>
<NEXT_LOCATION/>
<TRACKING_CODE>T</TRACKING_CODE>
</ConsignmentTrack>
</ArrayOfConsignmentTrack>
现在我想要这样的输出:
我正在使用此代码获取值
$myXMLData = file_get_contents($URL);
$xml = (array)simplexml_load_string($myXMLData);
if($xml) {
$dataArray = (array)$xml['ConsignmentTrack'];
echo $DOCKNO = $dataArray['DOCKNO'];
echo $TRANSIT_LOCATION = $dataArray['TRANSIT_LOCATION'];
echo $ACTIVITY = $dataArray['ACTIVITY'];
echo $EVENTDATE = $dataArray['EVENTDATE'];
echo $EVENTTIME = $dataArray['EVENTTIME'];
echo $NEXT_LOCATION = $dataArray['NEXT_LOCATION'];
} else{
echo " - Invalid Docket No.";
}
但它只给出一个值。我必须使用什么循环结构?
【问题讨论】:
-
感谢 Sajan 的建议编辑 :)
-
仅供参考:您可以接受对您帮助最大并解决您问题的答案(meta.stackexchange.com/q/5234)!如果有这样的答案,您也可以对所有其他问题执行此操作
-
如果您还没有在 PHP 手册中找到这篇文章(看起来),这里是推荐阅读的链接:Basic SimpleXML usage。并且请考虑参考问题中给出的资源和信息,我关闭了你的这个问题,以免你下一个关于如何在 PHP 中解析和处理 XML 的 X 问题(或者至少你不会走得太远就像这里一样,你做的所有多余的数组强制转换可能会给你带来更多的问题)。