elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [XML] Sustituir datos de una etiqueta ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [XML] Sustituir datos de una etiqueta ?  (Leído 1,434 veces)
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
[XML] Sustituir datos de una etiqueta ?
« en: 7 Febrero 2014, 17:36 pm »

Buen dia.

Tengo un XML el cual cierta etiqueta tiene datos erroneos, y quisiera de forma automatica sustituir la informacion de dicha etiqueta para todos mis documentos XML.

Un ejemplo...

Tengo un XML por cada DIA este recopila las actividades que se hicieron en todo el dia, por defecto hay una etiqueta "Fecha" que es la fecha de creacion del XML (cuando inicio la lista de actividades), mas o menos asi:

Código:
<jornada>
      <eventos>
            <actividad>limpiar computadora</actividad>
            <actividad>visitar a X cliente</actividad>
      </eventos>
      <fecha>linux_time</fecha>
</jornada>

Quiero quitar el time linux y poner como atributo dos valores: timelinux y time estandarizado.

Hice un código que lee las etiquetas "fecha", convierte el time linux al formato que quiero, pero al momento de meterlo al XML me resultan 2 etiquetas :(

Código:
<jornada>
      <fecha>time_linux</fecha>
      <fecha timelinux="time_linux" time="MMDDYYYYTHH:MM:SS"></fecha>
      <eventos>
            <actividad>limpiar computadora</actividad>
            <actividad>visitar a X cliente</actividad>
      </eventos>
</jornada>

Como podría hacerlo sin hacer esa repetición ?

El código que hice fue:

Código
  1. <?php
  2. $path= 'directorio/';
  3. $file= 'elarchivo.xml';
  4. $carga= array( "linuxtime"=>"123456789123", "time"=>"MMDDYYYYTHH:MM:SS" );
  5.  
  6. $xml = new DOMdocument( "1.0", "UTF-8" );
  7. $xml->preserveWhiteSpace= FALSE;
  8. $xml->load($path.$file); # cargamos el XML
  9. $a= $xml->getElementsByTagName("jornada")->item(0); # buscamos elementos
  10. $jornada= $xml->createElement("fecha"); # creamos tag
  11. $a->appendChild($jornada);
  12. cargaAtt($jornada, $carga ); # cargamos atributos
  13. ?>

LA idea es obtener como resultado algo asi:

Código:
<jornada>
      <fecha timelinux="time_linux" time="MMDDYYYYTHH:MM:SS"></fecha>
      <eventos>
            <actividad>limpiar computadora</actividad>
            <actividad>visitar a X cliente</actividad>
      </eventos>
</jornada>


En línea

EFEX


Desconectado Desconectado

Mensajes: 1.171


"Dinero Facil"


Ver Perfil WWW
Re: [XML] Sustituir datos de una etiqueta ?
« Respuesta #1 en: 7 Febrero 2014, 18:12 pm »

Usa setAttribute('nombre', 'valor), creo que seria algo asi..
Código
  1. $jornada= $xml->createElement("fecha");
  2. $fecha = $a->appendChild($jornada);
  3. $fecha->setAttribute("linuxtime", "123456789123");
  4. $fecha->setAttribute("time", "MMDDYYYYTHH:MM:SS");

Y para que no este el otro elemento fecha, podes borrarlo de entrada con removeChild() o editarlo directamente sin tener que crear otro elemento fecha con getElementsByTagName().

https://php.net/manual/es/domnode.removechild.php


« Última modificación: 7 Febrero 2014, 18:16 pm por EFEX » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
MOVIDO: Etiqueta FORM
Diseño Gráfico
Morris 0 1,709 Último mensaje 25 Mayo 2004, 02:14 am
por Morris
etiqueta [code]
Sugerencias y dudas sobre el Foro
Free-Knowledgend 6 3,253 Último mensaje 4 Julio 2006, 17:26 pm
por _Sergi_
Emular a un ToolTips con una etiqueta.
Scripting
El mas antiguo 0 2,254 Último mensaje 15 Febrero 2022, 15:57 pm
por El mas antiguo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines