簡體   English   中英

需要在xpath中使用php變量的幫助

[英]Need some help using a php variable in xpath

感謝您的網站及其樂於助人的成員,除了一個小問題,我幾乎已經完成了該項目。

背景 ..

我有一個將數據輸入xml文件的表單,以及一個根據2條符合今天的日期和狀態為out的條件顯示信息的頁面。

問題是我使用的代碼僅在與狀態匹配時才為我提供數據,而在顯示數據之前我並不需要兩者都將其匹配。

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("//entry[.//date[contains(., '   $today')]]|//entry[.//status[contains(., 'out')]]");
if( $query ) {
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>";

}
}
else {
// Echo the special div.
}

因此,如您從代碼中看到的那樣,我可以通過$ today函數查詢它是否包含今天的日期(不起作用),並查詢它是否包含狀態,但是到目前為止,我無法獲取它匹配兩者的工作只匹配狀態。

抱歉,如果您在以前的某個地方已經回答了該問題,我在此先感謝大家的幫助。 如果問題太模糊,或者細節不夠充分,我也深表歉意。

| 在您的xpath-expression表示or ,請嘗試以下方法:

... xpath("/information/entry[date = '01/23/2014' and status='out']")

如果沒有contains() ,它將很好用

<date>01/23/2014</date>
<status>out</status>

用這個

... xpath("/information/entry[date[contains(., '01/23/2014')] and status[contains(., 'out')]]")

在此:

<date>foo01/23/2014</date>
<status>barout</status>

看到它工作了: https : //eval.in/93642

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM