2014-01-22 3 views
1

귀하의 사이트와 도움이되는 회원 덕분에 하나의 작은 문제를 제외하고이 프로젝트가 거의 완료되었습니다.xpath에서 php 변수를 사용하는 데 도움이 필요합니다.

배경 ..

나는 xml 파일과 오늘의 날짜와 일치 아웃 상태를 가질 필요가 기준의 2 개 기준으로 정보를 표시하는 페이지에 데이터를 입력하는 형태를 갖는다.

문제는 내가 사용하고있는 코드가 상태 만 일치 할 때 데이터를 제공하며 둘 다 데이터를 표시하기 전에 일치시킬 필요가 없다는 것입니다.

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는 표현의

+0

당신이 필요하지 않은'echo'는 XPath에 – madebydavid

+0

죄송합니다 그 날 – TheWebMann

답변

1

|or을 의미하며, 대신이 시도 :

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

그것은

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

사용이

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

에을의 contains()없이 잘 작동합니다 this :

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

6,는 작업을 참조하십시오 https://eval.in/93642

+0

매우 감사 중 하나의 방법을 작동하지 않습니다 여전히 처음에이되지 않았 음을 시도했다 귀하의 회신에 대한 많은 부분과 의심의 여지가 원래의 질문을 해결할 것입니다. 업데이트 된 질문에 도움이 될지 모르겠습니다. 어떤 도움이라도 크게 받게 될 것입니다. 기본적으로 $ today 변수가 보이지 않거나 사용되지 않고 최신으로 일치하지 않는 것처럼 보입니다. – TheWebMann

+0

많은 홍차를 마친 후 다시 읽은 후 코드를 적용한 결과 마침내 작동합니다. 충분한 평판을 얻었을 때 대단히 많은 스타가되었습니다. – TheWebMann

+0

위로 표를 남겼습니다. 고마워요. – TheWebMann

관련 문제