Symfony2 XPath返回重复的节点

时间:2015-12-29 18:31:39

标签: php mysql symfony xpath nodes

我试图从XML文件中执行某些sql查询但是当我从标记中获取查询时,它会返回比预期更多次的查询。

<?xml version="1.0" encoding="utf-8"?>
<informes>
    <informe>
    </informe>
    <indicadores>
        <indicador>
            <sql>
                SELECT concat('Total Facturacion: ', round(sum(total))) as valor FROM infomatrix.dtmax_facturacion
            </sql>
            <link>

            </link>
        </indicador>
        <indicador>
           <sql>
                SELECT concat('Stock total: ', round(sum(cantidad))) as valor FROM infomatrix.dtmax_stock
           </sql>
           <link>

           </link>
        </indicador>
    </indicadores>
</informes>

这是我的PHP代码:

    $sqlIndicador = $crawler->filterXpath('informes/indicadores/indicador');
    $elements = array();
    foreach($sqlIndicador as $element){
        $elements[] = $element->getElementsByTagName("sql")->item(0)->nodeValue;
    }
    $indicadores = array();
    foreach ($elements as $indicador) {
        $data = $repositorio->obtenerSqlIndicador($indicador);
        array_push($indicadores,$data);
    }

1 个答案:

答案 0 :(得分:0)

由于节点之间的结构相同,$ sqlIndicador返回2个结果,您正在迭代并获得2个结果。

将您的过滤器设为&#39; informes / indicadores&#39;然后你循环进入它,这将是&#39; indicador&#39;元素,2结果就是这种情况。从这个元素你得到sql。