Как я могу разобрать файл конфигурации, используя XML :: Simple в Perl? - PullRequest
2 голосов
/ 28 января 2012

У меня есть фрагмент perl как:

my $xml = new XML::Simple(
    KeyAttr=>{
        property => 'propertyname',          
    },
    ForceArray => 1,
    ContentKey => '-content');

my $config = $xml->XMLin($configFile);

Configfile выглядит следующим образом:

<config>
<property propertyname="text1" b="text2" c="text3" d="text4">
 text5
</property>
<property propertyname="text6" b="text7" c="text8" d="text9">
 text10
</property>
</config>

Я новичок в perl и XML :: Simple.Как разобрать этот файл конфигурации, чтобы c стал ключом, и я могу получить доступ к соответствующим b, dЧто KeyAttr говорит выше?

1 Ответ

3 голосов
/ 28 января 2012

XML :: Simple возвращает структуру данных Perl (см. perldoc perldsc ), которую вы можете визуализировать с помощью Data :: Dumper . Вот один из способов доступа к нужным вам данным:

use warnings;
use strict;
use XML::Simple;

my $xfile = '
<config>
<property propertyname="text1" b="text2" c="text3" d="text4">
 text5
</property>
<property propertyname="text6" b="text7" c="text8" d="text9">
 text10
</property>
</config>
';

my $xml = new XML::Simple(
    KeyAttr=>{
        property => 'propertyname',          
    },
    ForceArray => 1,
    ContentKey => '-content');

my $config = $xml->XMLin($xfile);

print "$config->{property}{text1}{c}\n";
print "$config->{property}{text6}{c}\n";
print "$config->{property}{text1}{d}\n";
print "$config->{property}{text6}{d}\n";

__END__

text3
text8
text4
text9

Вы можете прочитать о KeyAttr из perldoc XML :: Simple

...