Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Puntoinfinito en 2 Febrero 2013, 11:20 am



Título: PHP - añadir múltiples elementos en DOM's
Publicado por: Puntoinfinito en 2 Febrero 2013, 11:20 am
Hola...  :D

A ver, tengo este código de aquí;

    
Código
  1. <?php
  2.  
  3.    $archivo = 'documentoHTML.html';
  4.  
  5.    $doc = new DOMDocument;
  6.  
  7.    $doc->loadHTMLFile($archivo);
  8.  
  9.    $doc->formatOutput = true;
  10.  
  11.    $elemento = $doc->getElementById('menu');
  12.  
  13.    $nuevo = $doc->createElement('li','Articulo');
  14.  
  15.    $elemento->appendChild($nuevo);
  16.  
  17.    $doc->saveHTMLFile($archivo);
  18.  
  19.    ?>

Lo que quiero, es que no solo añada un <li> y "Articulo" dentro, si no que añada dentro de <li> otra etiqueta que sea un link <a href...>, sería posible?

Ah, otra cosa he probado de poner  $doc->encoding = 'UTF-8'; y  $doc->encoding = 'iso-8859-1'; antes de saveHTMLFile, para que códifique con acentos y todo... Pero nada.

PD: Pregunto esto en otro hilo ya que el otro quedo ignorado


Título: Re: PHP - añadir múltiples elementos en DOM's
Publicado por: #!drvy en 3 Febrero 2013, 05:00 am
Puedes crear otro elemento que use appendChild sobre el li ($nuevo).

Para los atributos (href) puedes utilizar createAttribute
http://www.php.net/manual/en/domdocument.createattribute.php

Sobre lo segundo.. DOMDocument no se luce por manejar muy bien el encoding. Podrías probar:

Código
  1. $doc = new DOMDocument('1.0', 'utf-8');

PD: En el otro post te deje el código para que lo entendieras... no para que hagas copy/paste. Busca que significan esas funciones y que es lo que hacen.

Saludos


Título: Re: PHP - añadir múltiples elementos en DOM's
Publicado por: Puntoinfinito en 3 Febrero 2013, 13:07 pm
Thanks, ya lo hice, y lo entiendo :)

Saludos y GRACIAS   :D


Título: Re: PHP - añadir múltiples elementos en DOM's
Publicado por: Puntoinfinito en 5 Febrero 2013, 21:36 pm
Ah, lo primero ya aprendi a usarlo y tal y funciona... Pero lo de utf-8; nop. Es esa la manera?