【发布时间】:2017-02-16 18:54:30
【问题描述】:
我已将我的 PHP 代码包含在我从中检索数据的 XML 文件的 sn-p 中。
我想显示来自 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>
【问题讨论】:
-
您没有解释您要解决的问题是什么,以及为什么提供的代码不起作用。见stackoverflow.com/help/how-to-ask
-
@miken32 原谅我,我现在已经澄清了我的帖子。
-
没有理由不能以与使用 ID 完全相同的方式使用日期,您只需要确保以完全相同的方式格式化日期,因为 XML 将其视为字符串.
-
@Mike 我不认为这会起作用,因为我认为 ID 搜索变成了索引值?
-
@Mike 你能举个例子吗,我用的方法完全一样,但是输出为空。