PHP Dom Parser获得跨度值

时间:2013-03-18 09:40:00

标签: php parsing dom

我希望从外部网址收集信息,并将其剥离为值。

例如

<span id="ctl00_cphRoblox_rbxUserStatisticsPane_lFriendsStatistics">149</span>

我找不到使用PHP Dom获取'149'

的方法

请帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

一种方法是使用preg_match(),但我只会将它用于curl()......

$row = '<span id="ctl00_cphRoblox_rbxUserStatisticsPane_lFriendsStatistics">149</span>';
preg_match_all('/<span.*?>.*?<\/[\s]*span>/s', $row, $matches2);
var_dump($matches2);

另一种选择是使用simple_html_dom.php:

include('simple_html_dom.php');
$html = str_get_html($row);

var_dump($html->find('span', 0)->plaintext);

第三个是使用内置的DOMDocument。

答案 1 :(得分:0)

function DOMRemove(DOMNode $from) {
    $sibling = $from->firstChild;
    do {
        $next = $sibling->nextSibling;
        $from->parentNode->insertBefore($sibling, $from);
    } while ($sibling = $next);
    $from->parentNode->removeChild($from);    
}

$dom = new DOMDocument;
$dom->load('test.html');

$nodes = $dom->getElementsByTagName('span');
foreach ($nodes as $node) {
    DOMRemove($node);
}
echo $dom->saveHTML();

来源:https://stackoverflow.com/a/4663865/1675369