【问题标题】:XPath query return multiple nodes on different levelsXPath 查询返回不同级别的多个节点
【发布时间】:2013-09-29 11:55:52
【问题描述】:

PHP 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 必须位于同一车辆内(不是随机对)。

【问题讨论】:

  • 你的问题不是很清楚。根据 XML 结构,Reg 应该是 textContent 的一部分。

标签: php xml xpath


【解决方案1】:

如何查询车辆,然后将其用作上下文节点来搜索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),
    );
}

参见:

【讨论】:

    猜你喜欢
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    相关资源
    最近更新 更多