2013-09-29 137 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:

<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,这样我也找回了reg为每一个以及? Service和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