需要使用simplexml xpath和php显示xml文件中的数据的帮助吗

需要使用simplexml xpath和php显示xml文件中的数据的帮助吗,php,xml,xpath,simplexml,Php,Xml,Xpath,Simplexml,您好,我现在道歉,如果这个问题已经被问到并回答了,我已经为此工作了好几天了,我被困在最后的障碍上,并且已经从阅读本网站上的其他帖子中走了这么远,所以听到了 我一直在开发一个表单,该表单将详细信息输入xml文件,我还需要另一个页面来显示xml文件中的数据,只要它符合某些条件 基本XML结构 <information> <entry> <date></date> <name></name>

您好,我现在道歉,如果这个问题已经被问到并回答了,我已经为此工作了好几天了,我被困在最后的障碍上,并且已经从阅读本网站上的其他帖子中走了这么远,所以听到了

我一直在开发一个表单,该表单将详细信息输入xml文件,我还需要另一个页面来显示xml文件中的数据,只要它符合某些条件

基本XML结构

    <information>
    <entry>
    <date></date>
    <name></name>
    <status></status>
    <notes></notes>
    <comments></comments>
    </entry>
    </information>

基本上我用的是

 $lib  = simplexml_load_file("sample.xml");
 $today = date("m/d/y");

 $query = $lib->xpath("//information//date[contains(., '$today')] |     //information//status[contains(., 'out')]");


 foreach($query as $node){

 echo "<div id='one'>$node->name</div>
 <div id='two'>$node->notes</div> 
 <div id='three'><div class='front'>$node->comments</div></div>";
 }
$lib=simplexml\u load\u文件(“sample.xml”);
$today=日期(“m/d/y”);
$query=$lib->xpath(//information//date[contains(,'$today')].//information//status[contains(,'out')]);
foreach($queryas$node){
echo“$node->name
$node->notes
$node->comments”;
}
它似乎打印了div的数量,但没有为值添加任何文本。请善良的灵魂为我指出正确的方向,如果我回答了这个问题,我再次道歉,如果我没有提供足够的信息,我也道歉

更新:我需要做的是在xml文件中查询当前状态为date in date和out in的条目,然后显示符合条件的每个条目的名称注释和注释,这将在if语句中使用,因此如果匹配,则显示数据,如果不匹配,则显示另一个div感谢您所做的任何尝试


更新2我正在运行的查询显示结果,如果其中一个答案匹配,我需要它返回数据,如果它与这两个答案都匹配,请提前感谢。

如果要选择所有具有特定条件的子代标记
或具有特定条件的子代标记
,您的xpath语法应该是:

"//information[.//date[some criteria]] | //information[.//status[some criteria]]"
如果我猜对了您的目标,您的xpath查询应该如下所示:

$query = $lib->xpath("//information[.//date[contains(., '$today')]] | //information[.//status[contains(., 'out')]]");

备注:如果您想要
标记而不是
,请将
//信息
更改为
//条目
。顺便说一句,我对PHP一无所知,只对这个问题的xpath部分感兴趣

感谢您的努力,但遗憾的是,这段代码使它能够打印xml文件中的所有数据,而不仅仅是与日期和状态中的参数匹配的数据的信息。感谢您的尝试。抱歉,我想我错过了条件表达式之前的单点。更新了我的答案,请再试一次谢谢你,很遗憾我无法给出你的答案,但它解决了我的问题,我无法感谢你。没关系,只要你有足够的代表投票,你随时可以回来。无论如何,很高兴知道这解决了你的问题:)不幸的是,我注意到这会返回数据,如果其中一个匹配,我只需要这两个匹配就可以了,我知道我做错了什么吗