Schrift
[thread]8041[/thread]

XML::Twig (attributierte tags)

Leser: 1


<< >> 6 Einträge, 1 Seite
vayu
 2006-05-31 19:00
#66852 #66852
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich lese grad mit XML::Twig ein ziemliches grosses XML file aus.

dieses modul eignet sich in sofern sehr gut, als dass ich auch nur spezielle sektionen auslesen kann, ohne das komplette file (16 MB) einzulesen.

Code: (dl )
1
2
3
4
5
6
7
my $t= XML::Twig->new( 
      # the twig will include just the root and selected titles
          twig_roots   => { 'section/title' => \&print_n_purge,
                            'annex/title'   => \&print_n_purge
          }
                     );
 $t->parsefile( 'doc.xml');


das funktioniert auch bis jetzt recht gut.

jetzt komme ich aber zu einer Sektion

Code: (dl )
1
2
3
4
5
6
7
<sektion>
<title attrib="bla>
<value>
wert
</value>
</title>
</sektion>


hier möchte ich den wert aus dem tag value auslesen. diesen pfad also oben mit in den code einfügen, dass mir das modul die 3 verschiedenen pfade ausliest.

hat von euch jemand erfahrung wie man das mit diesem modul realisieren kann? ich hab da in der doku nichts gefunden

CPAN:XML::Twig

Danke im voraus für die Hilfe :)

- vayu\n\n

<!--EDIT|vayu|1149090076-->
vayu
 2006-05-31 19:19
#66853 #66853
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
achja, ich habe es probiert mit

/section/title[@name="bla"]/value

aber da gabs

Quote
unrecognized expression in handler: 'cruisecontrol/testlog/units/testcase/description/additional/setting[@name="WorkingDir"]/value'
at ts_trace_test_ids.pl line 73
renee
 2006-05-31 19:32
#66854 #66854
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du solltest uns schon mitteilen, _WAS_ Du realisieren möchtest... Einfach ein Stück XML und dann die Frage "Wie kann ich das realisieren" ist nicht sehr spezifisch und meine Glaskugel ist gerade zur Reparatur...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
vayu
 2006-05-31 19:41
#66855 #66855
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
args ... sorry, habe vorhin oben was rausgeschnitten und wohl zuviel weggenommen, habs oben eingefügt.
vayu
 2006-06-01 18:37
#66856 #66856
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
hmpf ...

abe grad in nem activestate board was niederprügelndes gelesen :(

http://aspn.activestate.com/ASPN/Mail/Message/perl-xml/942116

Quote
> WARNING: (hopefully temporary) at the moment

> string_condition, regexp_condition and

> attribute_condition are only supported on a simple

> gi, not on a path.


somit hat sich das wohl erledigt ... :/
vayu
 2006-06-01 18:47
#66857 #66857
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
hm, hab mir grad mal anhand des beispiel von dem dort postenden nen "kleines" workaround gebasteld, ob sich das bei meinem problem dann auch noch so realisieren lässt werde ich morgen sehen, wenn ich wieder auf arbeit bin.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/perl -w

use strict;
use XML::Twig;
my $file = "/Users/mem/Desktop/CV/test.xml";

my %cities;

my $twig = XML::Twig-> new(

KeepEncoding => 1,

TwigRoots => {'europe' => 1},

TwigHandlers => {'capitale[@lang="fr"]'

=> sub {$cities{$_[1]->text} = $_[1]->att("lang")}}

);
$twig-> parsefile($file);

$twig-> purge;


foreach my $key (keys %cities) {
print "$key = $cities{$key}\n";
}


indem man vor dem handler die root auf europe setzt, werden dann auch nur noch die tags aus der untersektion europe ausgelesen.\n\n

<!--EDIT|vayu|1149173275-->
<< >> 6 Einträge, 1 Seite



View all threads created 2006-05-31 19:00.