PHP DOM: разбор HTML-списка в массив?

Я хочу превратить список html в массив,

$string = ' <a href="#" class="something">1</a> <a href="#" class="something">2</a> <a href="#" class="something">3</a> <a href="#" class="something">4</a> '; 

Я работаю над методом DOM,

 $dom = new DOMDocument; $dom->loadHTML($string); foreach( $dom->getElementsByTagName('a') as $node) { $array[] = $node->nodeValue; } print_r($array); 

результат,

 Array ( [0] => 1 [1] => 2 [2] => 2 [3] => 4) 

но я ищу результат, как это на самом деле,

 Array ( [0] => <a href="#" class="something">1</a> [1] => <a href="#" class="something">2</a> [2] => <a href="#" class="something">3</a> [3] => <a href="#" class="something">4</a> ) 

Является ли это возможным?

Передайте узел в DOMDocument::saveHTML чтобы получить его представление HTML:

 $string = ' <a href="#" class="something">1</a> <a href="#" class="something">2</a> <a href="#" class="something">3</a> <a href="#" class="something">4</a> '; $dom = new DOMDocument; $dom->loadHTML($string); foreach($dom->getElementsByTagName('a') as $node) { $array[] = $dom->saveHTML($node); } print_r($array); 

Результат:

 Array ( [0] => <a href="#" class="something">1</a> [1] => <a href="#" class="something">2</a> [2] => <a href="#" class="something">3</a> [3] => <a href="#" class="something">4</a> ) 

Между прочим, работает только с PHP 5.3.6 и выше.