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 
} 

Targeted XML:

<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 

Как я могу изменить PHP, так что я также извлечения Рег для каждого из них, а также ? Служба и регистр должны находиться внутри одного транспортного средства при извлечении (не случайные пары).

+0

Ваш вопрос не совсем понятно. Согласно структуре XML, Reg должен быть частью 'textContent' уже. – hakre

ответ

3

Как насчет запроса транспортного средства, а затем его использования в качестве контекстного узла для поиска Service и Reg?

$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

Смежные вопросы