2012-04-28 16 views
5

मैं एक सरणी में एक एचटीएमएल सूची चालू करना चाहते हैं,PHP डोम: एक 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[] = $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> 
) 

क्या यह संभव है?

उत्तर

19

उसके HTML प्रतिनिधित्व प्राप्त करने के लिए DOMDocument::saveHTML नोड दर्रा:

$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> 
) 

केवल, पीएचपी 5.3.6 और उच्च के साथ काम करता माध्यम से।

+0

उत्तर के लिए बहुत बहुत धन्यवाद! – laukok

+0

अच्छा, नए नोड परम के बारे में नहीं पता था। – goat

संबंधित मुद्दे