我有多個XML文檔包含來自API的輸出 - 此輸出是來自我們票務系統的支持票據。我正在計算狀態設置爲特定狀態的票數。在PHP中的多個文檔中計算XML元素
XML輸出如下所示(儘管7個文檔中有更多的請求元素)。
<response uri="/api/xml/getRequestsByView">
<result>
<status>Success</status>
<statuscode>200</statuscode>
<requests>
<request>
<form name="requestID">12345</form>
<form name="userTimeFormat">dd MMM yyyy, HH:mm:ss</form>
<form name="contact">Name</form>
<form name="status">Open</form>
<form name="statusID">1</form>
<form name="priority">P3 Minor</form>
<form name="supportRep"/>
<form name="supportRepCostPerHour">0.00</form>
<form name="createdTime">20 Jun 2017, 08:22:00</form>
<form name="updatedTime">20 Jun 2017, 08:23:11</form>
<form name="dueByTime"/>
<form name="isOverDue">false</form>
<form name="accountID"/>
<form name="account"/>
<form name="subject">Subject Name</form>
</request>
<request>
<form name="requestID">12346</form>
<form name="userTimeFormat">dd MMM yyyy, HH:mm:ss</form>
<form name="contact">Contact Name</form>
<form name="status">Open</form>
<form name="statusID">1</form>
<form name="priority">P3 Minor</form>
<form name="supportRep"/>
<form name="supportRepCostPerHour">0.00</form>
<form name="createdTime">20 Jun 2017, 08:21:58</form>
<form name="updatedTime">20 Jun 2017, 08:23:10</form>
<form name="dueByTime"/>
<form name="isOverDue">false</form>
<form name="accountID"/>
<form name="account"/>
<form name="subject">Subject Name</form>
</request>
</requests>
</result>
到目前爲止,我創建了以下功能 - 輸出我從下面得到的是「1440」。它應該起作用,因爲當我替換count元素以回顯每個匹配時,輸出顯示了每個具有匹配狀態的故障單的狀態 - 只是計數元素看起來沒有按照需要運行。
function countPriority($status){
$files = array("includes/xml-1.xml","includes/xml-2.xml","includes/xml-3.xml","includes/xml-4.xml","includes/xml-5.xml","includes/xml-6.xml","includes/xml-7.xml");
$count = 0;
foreach ($files as $url) {
$xml = simplexml_load_file($url);
foreach ($xml->result->requests->request as $request){
if ($request->form['3'] == $status){
$count+= count($request);
}
}
return $count;
}
}
對於PHP /編碼,我是一個完全新手,所以任何建議或協助將不勝感激。
移動'return'出來的'foreach' –
感動 - 感謝您的幫助:) – user3235720