Primero que todo el archivo XML es muy sencillo, a continuación muestro como es:
Using xml Syntax Highlighting
<?xml version="1.0" encoding="UTF-8"?>
<datos xsi:noNamespaceSchemaLocation="D:\Work\prueba.xsd" opr="0">
<letra>V</letra>
<cedula>123</cedula>
<PNombre>nombre</PNombre>
<SNombre>Segundo Nombre</SNombre>
<PApellido>apellido</PApellido>
<FechaNac>1980-07-25</FechaNac>
<FechaCedOrg>2005-03-31</FechaCedOrg>
<CodObjecion>00</CodObjecion>
<CodOficina>AB</CodOficina>
<CodEstadoCivil>2</CodEstadoCivil>
<Naturalizado>0</Naturalizado>
<Sexo>M</Sexo>
</datos>
<datos xsi:noNamespaceSchemaLocation="D:\Work\prueba.xsd" opr="0">
<letra>V</letra>
<cedula>123</cedula>
<PNombre>nombre</PNombre>
<SNombre>Segundo Nombre</SNombre>
<PApellido>apellido</PApellido>
<FechaNac>1980-07-25</FechaNac>
<FechaCedOrg>2005-03-31</FechaCedOrg>
<CodObjecion>00</CodObjecion>
<CodOficina>AB</CodOficina>
<CodEstadoCivil>2</CodEstadoCivil>
<Naturalizado>0</Naturalizado>
<Sexo>M</Sexo>
</datos>
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
y el código que he creado en Perl es el siguiente:
Using perl Syntax Highlighting
use XML::Simple;
my $datos = XMLin('./prueba.xml');
print join q{|},
$datos->{letra} ,
$datos->{cedula} ,
$datos->{PNombre} ,
$datos->{SNombre} ,
$datos->{PApellido} ,
$datos->{FechaNac} ,
$datos->{FechaCedOrg} ,
$datos->{CodObjecion} ,
$datos->{CodOficina} ,
$datos->{CodEstadoCivil} ,
$datos->{Naturalizado} ,
$datos->{Sexo};
print "\n";
my $datos = XMLin('./prueba.xml');
print join q{|},
$datos->{letra} ,
$datos->{cedula} ,
$datos->{PNombre} ,
$datos->{SNombre} ,
$datos->{PApellido} ,
$datos->{FechaNac} ,
$datos->{FechaCedOrg} ,
$datos->{CodObjecion} ,
$datos->{CodOficina} ,
$datos->{CodEstadoCivil} ,
$datos->{Naturalizado} ,
$datos->{Sexo};
print "\n";
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Hasta ahora esto me está funcionando bien, sin embargo aún no es lo que deseo obtener, ya que necesito que el programa me lea el atributo "opr " del elemento datos; si este atributo es 0 me debe marcar la información para "insertar" y si es 1, lo debe marcar como "actualizar".
No he conseguido entonces cómo leer este atributo del elemento.
Además de ello, este archivo xml se encontrará en un carpeta con varios archivos xml más, con la misma estructura; tampoco entonces he encontrado una función o librería que me lea todo el folder y me vaya leyendo xml por xml y pienso que me los cargue en un array donde después los pueda vaciar en el txt.
Hasta ahora estoy muy básico en este asunto, lo bueno es que he podido apreciar la potencialidad de este lenguaje.