在php中迭代SOAP-xml结果中的项目

时间:2016-12-12 08:48:38

标签: php xml soap

我正在努力尝试迭代xml字符串。我之前做过它并且工作正常。 我从SOAP服务器那里得到了这个:

$lr = $client->__doRequest($request, $url, $action, $version);
dd($lr);

我明白了: Too long to be here. It's on pastebin

当我尝试这个时:

$xml = new \DOMDocument();
$xml->loadXML($lr);
$i = 0;        
while(is_object($productos = $xml->getElementsByTagName('Productos')->item($i))) {
    foreach($productos->childNodes as $nodename) {
        echo $i.": ".$nodename->nodeName." - ".$nodename->nodeValue."<br>";
    }
    $i++;
}

我明白了:Result with products

现在,我想做这样的事情:

 foreach ($productos as $producto) {
    $referencia_dist = trim($producto->IdProducto);
    $mpn = trim($producto->PartNumber); 
    $ean = trim($producto->UpcCode);
    and son on....
}

但我在这里堆积。任何提示???

1 个答案:

答案 0 :(得分:0)

OK!得到了解决方案!它比我想象的要容易......也许,这就是为什么我找不到它......

while(is_object($productos = $xml->getElementsByTagName('Productos')->item($i))){
          $nombre = "";
          $IdCategoria = "";
        foreach($productos->childNodes as $producto)
                 {
                     switch ($producto->nodename){
                      case 'IdProducto':
                          $IdProducto = $producto->nodeValue;
                      case 'IdTarifa':
                          $IdTarifa = $producto->nodeValue;
                      case 'MostrarComparadores':
                          $MostrarComparadores = $producto->nodeValue;
                      case....

}