2013-09-29 3 views
0

PHP XPath 쿼리 :XPath 쿼리 반환 여러 노드

$query = $xpathvar->query('//siri:Service'); 
foreach($query as $service) { 
    echo $service->textContent; 
    // Here I need to also echo this Vehicle's reg 
} 

대상으로 XML : 나는 또한뿐만 아니라 각각의 등록 번호를 검색 할 수 있도록 PHP를 변경할 수있는 방법

<Vehicle> 
    <CategoryA> 
     <Service>123123123</Service> 
    </CategoryA> 
    <CategoryB> 
     <SubCategoryA> 
      <Reg>ASDF_XC1</Reg> 
     </SubCategoryA> 
    </CategoryB> 
</Vehicle> 
// Imagine many more vehicles here each with a service and reg 

? 검색시 서비스와 등록은 같은 차량 안에 있어야합니다 (무작위가 아닌).

+0

귀하의 질문은 정말 분명하지 않다. XML 구조에 따르면, Reg는 이미'textContent'의 일부가되어야합니다. – hakre

답변

3

차량을 쿼리 한 다음 컨텍스트 노드로 사용하여 ServiceReg을 검색하는 방법은 어떻습니까?

$vehicles = $xpath->query('//siri:Vehicle'); 
$pairs = array(); 
foreach ($vehicles as $vehicle) { 
    $pairs[] = array(
     'Service' => $xpath->evaluate('string(.//siri:Service)', $vehicle), 
     'Reg'  => $xpath->evaluate('string(.//siri:Reg)' , $vehicle), 
    ); 
} 

도 참조 :

+0

완벽 하 고, 대단히 감사합니다! – jskidd3