Re: [OT] xmlstarlet y un script bash

2010-04-13 Por tema Camaleón
El Tue, 13 Apr 2010 12:37:18 +0200, Alwar escribió:

 Hola.
 Tengo un archivo xml con varios nombres de archivos como este (tiene mas
 cosas pero esta es la parte que no puedo sacar):
 
 practica nombre=Practica1
 
ficherofichero1/fichero
 
ficherofichero2/fichero
 
ficherofichero3/fichero
 
ficherofichero4/fichero
 
ficherofichero5/fichero
 
 /practica
 
 Y quiero que el programa xmlstarlet me muestre todos los nombres de
 fichero y así poder meterlos en un array en bash para luego comprobar
 que existan esos archivos.
 Utilizando el comando   xmlstarlet sel -t -m /practica -v fichero
 asignatura.xml  solo consigo que me muestre fichero1 pero yo quiero
 mostrar todos, o alguna forma de que me muestre los sucesivos y así
 poder leer todos.

Te puedo decir cómo hacerlo con una hoja de transformación (XSLT) que 
puedes enlazar al XML:

***
?xml version=1.0?
xsl:stylesheet version=1.0 
xmlns:xsl=http://www.w3.org/1999/XSL/Transform;
xsl:template match=/
xsl:for-each select=practica/ficheroxsl:value-of select=./
/xsl:for-each
/xsl:template
/xsl:stylesheet
***

Pero ese programa (xmlstarlet) no sé cómo va O:-)

Saludos,

-- 
Camaleón


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/pan.2010.04.13.11.23...@gmail.com



Re: [OT] xmlstarlet y un script bash

2010-04-13 Por tema Angel Abad
El día 13 de abril de 2010 12:37, Alwar alwarstud...@gmail.com escribió:
 Hola.
 Tengo un archivo xml con varios nombres de archivos como este (tiene
 mas cosas pero esta es la parte que no puedo sacar):

 practica nombre=Practica1

   ficherofichero1/fichero

   ficherofichero2/fichero

   ficherofichero3/fichero

   ficherofichero4/fichero

   ficherofichero5/fichero

 /practica

 Y quiero que el programa xmlstarlet me muestre todos los nombres de
 fichero y así poder meterlos en un array en bash para luego comprobar
 que existan esos archivos.
 Utilizando el comando   xmlstarlet sel -t -m /practica -v fichero
 asignatura.xml  solo consigo que me muestre fichero1 pero yo
 quiero mostrar todos, o alguna forma de que me muestre los sucesivos y
 así poder leer todos.

Buenas, yo tampoco conozco xmlstarlet, pero en perl algo rápido podría
ser algo asi como:

#!/usr/bin/perl

use XML::Simple;

my $campos = XMLin(/tmp/practica.xml);

for (@{$campos-{fichero}}) {
print $_\n;
}

AguuR

 Espero haberme explicado bien.

 Gracias y un saludo!
 --
 Alvaro Guzmán
 http://alwar.mainfri.com


 --
 To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
 with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
 Archive: 
 http://lists.debian.org/t2ueffc99d11004130337p4bce64bdg2fbc9e5f73756...@mail.gmail.com




--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/o2l6fc1ef361004130533k122a5b96hc23cf747d6670...@mail.gmail.com



Re: [OT] xmlstarlet y un script bash

2010-04-13 Por tema Alwar
El día 13 de abril de 2010 13:23, Camaleón noela...@gmail.com escribió:
 El Tue, 13 Apr 2010 12:37:18 +0200, Alwar escribió:

 Hola.
 Tengo un archivo xml con varios nombres de archivos como este (tiene mas
 cosas pero esta es la parte que no puedo sacar):

 practica nombre=Practica1

    ficherofichero1/fichero

    ficherofichero2/fichero

    ficherofichero3/fichero

    ficherofichero4/fichero

    ficherofichero5/fichero

 /practica

 Y quiero que el programa xmlstarlet me muestre todos los nombres de
 fichero y así poder meterlos en un array en bash para luego comprobar
 que existan esos archivos.
 Utilizando el comando   xmlstarlet sel -t -m /practica -v fichero
 asignatura.xml  solo consigo que me muestre fichero1 pero yo quiero
 mostrar todos, o alguna forma de que me muestre los sucesivos y así
 poder leer todos.

 Te puedo decir cómo hacerlo con una hoja de transformación (XSLT) que
 puedes enlazar al XML:

 ***
 ?xml version=1.0?
 xsl:stylesheet version=1.0
 xmlns:xsl=http://www.w3.org/1999/XSL/Transform;
 xsl:template match=/
 xsl:for-each select=practica/ficheroxsl:value-of select=./
 /xsl:for-each
 /xsl:template
 /xsl:stylesheet
 ***

 Pero ese programa (xmlstarlet) no sé cómo va O:-)

 Saludos,

 --
 Camaleón

Gracias Camaleón por tu hoja de estilos, me dio la pista para sacar el
comando correcto.

Concretamente yo necesitaba
xmlstarlet sel -t -m practica/fichero -v . -n archivo.xml
Ya que la opcion -m equivale al for-each de tu xsl y el -v al
value-of. A mi no me salia porque no se me ocurrio poner con el -v .
que es lo que tu pusiste en tu xsl.
Saqué mas información de aquí:
http://mcs.une.edu.au/doc/xmlstarlet-1.0.1/xmlstarlet-ug.html#id1639281

Problema resuelto!
Muchas gracias a todos!



-- 
Alvaro Guzmán
http://alwar.mainfri.com


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/x2keffc99d11004131133ue9e20a1ds218f880d77026...@mail.gmail.com