我已經將我的PHP代碼包含在我從中檢索數據的XML文件片段中。在XML文檔中查找屬性並使用PHP輸出子節點
我想顯示XML文件中的數據,與我如何將它用作ID一樣。在ID中,它使用ID作爲索引,但是我發現它不能用作日期。
我的第一個想法是隻使用xPath並將其保留爲此,但我想將數據格式設置爲類似以保持一致性。
作爲PHP和XML的初學者,我將不勝感激任何可以進一步學習語言或格式風格的洞察力或文檔。
我遇到的問題是找到已輸入的相關屬性的索引值,並以ID搜索等格式單獨輸出。
<?php
if($_GET["SearchChoice"] == "ID Search"){ #WORKING FINDS THE VALUE OF DATA NEEDED
$xml=simplexml_load_file("XMLtest.xml") or die("Error: Cannot create object");
$passID = intval($_GET["IDsend"]);
if ($passID !== 0){
$passID = $passID - 1;
}
#echo $xml['date'];
#echo var_dump((string)$xml['date']);
$attr = $xml->finances[$passID]->attributes();
echo "Date: ";
echo $attr['date'];
echo $xml->finances[$passID]->day . ",<br>Projection: ";
echo $xml->finances[$passID]->projection . ",<br>Recommended Staff: ";
echo $xml->finances[$passID]->recommendedStaff . ",<br>Staff Wages: ";
echo $xml->finances[$passID]->staffWages . ",<br>Actual: ";
echo $xml->finances[$passID]->actual . "<br>";
}
elseif($_GET["SearchChoice"] == "Date Search") {
$xml=simplexml_load_file("XMLtest.xml") or die("Error: Cannot create object");
$passDate = strval($_GET["DateSend"]);
$nodes = $xml->xpath("/january/finances[@date='". $passDate . "']"); # Instead of xpath possiblity: loop through to find date then output it similar to ID Search?
print_r($nodes);
}
else {
echo "Error 1 <br>";
echo $_GET["SearchChoice"];
}
這裏是XML的一部分:
<?xml version="1.0" encoding="UTF-8"?>
<january>
<finances id="1" date="01-01-2016">
<projection>414</projection>
<recommendedStaff>20</recommendedStaff>
<staffWages>100</staffWages>
<actual>250</actual>
</finances>
<finances id="2" date="02-01-2016">
<year>2016</year>
<month>01</month>
<day>02</day>
<projection>124</projection>
<recommendedStaff>8</recommendedStaff>
<staffWages>150</staffWages>
<actual>250</actual>
</finances>
<finances id="3" date="03-01-2016">
<projection>687</projection>
<recommendedStaff>20</recommendedStaff>
<staffWages>150</staffWages>
<actual>250</actual>
</finances>
<finances id="4" date="04-01-2016">
<projection>587</projection>
<recommendedStaff>15</recommendedStaff>
<staffWages>150</staffWages>
<actual>250</actual>
</finances>
<finances id="5" date="05-01-2016">
<projection>124</projection>
<recommendedStaff>5</recommendedStaff>
<staffWages>150</staffWages>
<actual>250</actual>
</finances>
<finances id="6" date="06-01-2016">
<projection>874</projection>
<recommendedStaff>22</recommendedStaff>
<staffWages>150</staffWages>
<actual>250</actual>
</finances>
</january>
你還沒有解釋你想解決什麼問題,以及爲什麼提供的代碼不起作用。看到http://stackoverflow.com/help/how-to-ask – miken32
@ miken32原諒我,我已經澄清了我的帖子。 –
沒有理由不能以完全相同的方式使用日期,只需確保日期的格式完全相同,因爲XML將其視爲字符串。 – Mike