Advertisement
thiagobodruk

DOMDocument with multiple children

Feb 17th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.42 KB | None | 0 0
  1. <?php
  2.  
  3. # Cria o objeto DOMDocument
  4. $dom = new DOMDocument('1.0', 'utf-8');
  5.  
  6. # Cria o element <ul>
  7. $ul = $dom->createElement('ul');
  8.  
  9. # Cria arrays para guardar os objetos <li> e <a>
  10. $li = [];
  11. $a = [];
  12.  
  13. # Itera uma array
  14. # Neste caso poderiam ser resultados vindos do Banco de Dados
  15. for($i = 0; $i < 3; $i++){
  16.     # Para cada resultado, cria um <li> e um <a> e inclui eles nas respectivas array
  17.     array_push($li, $dom->createElement('li'));
  18.     array_push($a, $dom->createElement('a'));
  19.     # Para cada resultado, cria um elemento <b>
  20.     $b = $dom->createElement('b', "Iteraรงรฃo #$i");   
  21.    
  22.     # Para cada resultado, anexa o <b> ao <a>
  23.     $a[$i]->appendChild($b);
  24.     # Para cada resultado, anexa o <a> ao <li> e adiciona o atributo href ao <a>
  25.     $li[$i]->appendChild($a[$i])->setAttribute('href', 'http://google.com/');
  26.     # Para cada resultado, anexa o <li> ao <ul> e adiciona o atributo class ao <li>
  27.     $ul->appendChild($li[$i])->setAttribute('class', 'item');
  28. }
  29.  
  30. # Cria um <span> com texto "Lorem ipsum"
  31. $span = $dom->createElement('span', 'Lorem ipsum');
  32. # Anexa o <span> ao segundo <li>
  33. $li[1]->appendChild($span);
  34. # Cria um elemento <em> com texto "Dolor sit amet"
  35. $em = $dom->createElement('em', 'Dolor sit amet');
  36. # Anexa o <em>  ao <span>
  37. $span->appendChild($em);
  38.  
  39. # Anexa o <ul> ao DOM e cria o atributo id
  40. $dom->appendChild($ul)->setAttribute('id', 'list');
  41.  
  42. # Gera a string do HTML
  43. $html = $dom->saveHTML();
  44. print $html;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement