Creo que este es un problema muy simple, pero no puedo resolverlo a pesar de muchas búsquedas.Script Perl para analizar XML utilizando XML :: LibXML;
Estoy tratando de analizar el siguiente XML para imprimir algo similar a TAG = VALUE, para que pueda escribir esto en un archivo CSV. El problema es que las etiquetas no son siempre las mismas para cada muestra. Parece que no puedo entender cómo obtener los nombres reales de las etiquetas. Cualquier ayuda apreciada !!!
de archivo XML -
<Statistics>
<Stats>
<Sample>
<Name>System1</Name>
<Type>IBM</Type>
<Memory>2GB</Memory>
<StartTime>2012-04-26T14:30:01Z</StartTime>
<EndTime>2012-04-26T14:45:01Z</EndTime>
</Sample>
<Sample>
<Name>System2</Name>
<Type>Intel</Type>
<Disks>2</Disks>
<StartTime>2012-04-26T15:30:01Z</StartTime>
<EndTime>2012-04-26T15:45:01Z</EndTime>
<Video>1</Video>
</Sample>
</Stats>
</Statistics>
Guión -
#!/usr/bin/perl
use XML::LibXML;
$filename = "data.xml";
my $parser = XML::LibXML->new();
my $xmldoc = $parser->parse_file($filename);
for my $sample ($xmldoc->findnodes('/Statistics/Stats/Sample')) {
print $sample->nodeName(), ": ", $sample->textContent(), "\n";
}
Línea 3 + 4 + 6 puede ser sustituido con: 'foreach mi $ hijo ($ muestra -> findnodes ('*')) {' – ikegami
¡¡¡¡¡¡¡¡¡¡¡Gracias !! – lozwell