Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Modificar el contenido de un nodo XML

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Vie Jun 20, 2008 6:45 am
xagutxu_perez
Perlero Nuevo
Perlero Nuevo
Registrado: 04 Abr 2008
Mensajes: 43
Modificar el contenido de un nodo XML Responder citando

Hola a todos:

Estoy utilizando el módulo LibXML, y no encuentro el modo de reemplazar el contenido de un nodo. Tengo:

HTML:
<tokens>
  <w id="w1" tokentype="HAS_MAI">
    <anbtal talde_zenb="13">
      <tamaina>002</tamaina>
      <C>1</C>
      <X>0</X>
      <GALD>0</GALD>
    </anbtal>
  </w>
  ...
</tokens>


Y si hago (teniento en $contenido = "XXX"):

Perl:
...
        foreach my $anbtal ($word->findnodes("anbtal")){
                        foreach my $correct ($anbtal->findnodes("C")){
                                $correct->appendText($contenido);
                        }
        }


Obtengo que el nodo "C" cambia a "1XXX":

HTML:
<tokens>
  <w id="w1" tokentype="HAS_MAI">
    <anbtal talde_zenb="13">
      <tamaina>002</tamaina>
      <C>1XXX</C>
      <X>0</X>
      <GALD>0</GALD>
    </anbtal>
  </w>
  ...
</tokens>


O sea, que no me reemplaza, sino que añade. He estado probando con diferentes métodos, pero no consigo hacerlo. ¿Alguien sabe cómo?

Gracias,

Xagutxu
Mensaje Vie Jun 20, 2008 7:23 am
monoswim
Vive para Perl en Español
Vive para Perl en Español
Registrado: 18 Nov 2003
Mensajes: 716
Ubicación: Buenos Aires
Responder citando

appendText($contenido)

append es agregar...

seguramente haya otra función para reemplazar el contenido...

saludos
Mensaje Vie Jun 20, 2008 9:37 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4086
Ubicación: Valladolid, España
Responder citando

Creo que tienes que usar el método setData().

XML::LibXML::Text
Mensaje Sab Jul 12, 2008 10:47 am
chechoman
Perlero Nuevo
Perlero Nuevo
Registrado: 02 Jul 2008
Mensajes: 19
Responder citando

Hola, sigo en la búsqueda de ver cómo hacer para que Perl me lea un XML que tiene un dato con 'ñ', 'Ñ' y palabras con acentos.

Cada vez que corro la aplicación me indica un error de que no puede leerlos, ¿alguien sabe cómo se puede hacer para que el programa en Perl pueda leer estos caracteres del XML?
Gracias
Mensaje Sab Jul 12, 2008 11:25 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4086
Ubicación: Valladolid, España
Responder citando

Quizás el problema sea codificación... Los xml suelen estar escritos en utf8, que es la codificación por defecto, pero se puede cambiar a otra, que tendrían indicadas en la cabecera.

Perl no tiene ningún problema en leer los ficheros siempre y cuando estén bien escritos.

Sería interesante ver un trozo del programa y un xml de ejemplo y el error que te sale.
Mensaje Sab Jul 12, 2008 11:48 am
chechoman
Perlero Nuevo
Perlero Nuevo
Registrado: 02 Jul 2008
Mensajes: 19
Responder citando

Hola. Coloqué el problema más detallado en este otro tema:
http://perlenespanol.baboonsoftware.com/foro/viewtopic.php?p=13471#13471
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group