donglu4633 2013-05-30 13:34
浏览 51
已采纳

将DOM文档解析为数组php

* What I want is, for the DOM to instead of printing the results line by line in a "foreach" loop, rather store it in an array.... So it should look like a list i.e. "[0] 16GB USB Stick" "[1] Computer monitor" "[2] wireless keyboard" etc etc So far I have this, but it only stores the last value from the for each loop.. Please help! *

$html = new DOMDocument();
@$html->loadHtmlFile('some online shop');
$xpath = new DOMXPath($html);
$nodelist = $xpath->query( "//div[@class='productname']/p" );

foreach ($nodelist as $n)
    {
        $value = $n->nodeValue;
        $list = array($value);
    }

echo $list[0];
  • 写回答

2条回答 默认 最新

  • drjun1994 2013-05-30 13:37
    关注

    That's because you're overriding it in each loop. Create an array, and add to that array:

    $list = array();
    
    foreach ($nodelist as $n)
    {
        $value = $n->nodeValue;
        $list[] = $value;
    }
    
    // Check there's at least one item in the array before accessing it
    if (count($list) > 0)
    {
        echo $list[0];
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?