Hallo. Ich versuche gerade eine xml-Datei einzulesen, Format: --------------------------------------------------------------------------- <oc11xml version="1.1" date="2007-08-23 17:27:17" since="2007-01-01 00:00:00"> <cache> <id id="103013" node="1">E1B384F9-C7AD-09DF-95D6-0523683E4C82</id> <name><![CDATA[Lupfen]]></name> <waypoints gccom="GCGQ6G" nccom="N01082" oc="OC0ED3" /> </cache> <cache> <id id="103014" node="1">35D59600-93C5-C4B6-05AF-18A09D6CDB4D</id> <name><![CDATA[Udilhild´s Heiratsgut]]></name> <waypoints gccom="GCGQ6V" nccom="N01085" oc="OC0ED4" /> </cache> </oc11xml> --------------------------------------------------------------------------- Beispiel für Aufbau, <name></name> ist nicht eindeutig. Die eigentliche Datei enthält etwa 10000 Datensätze. dafür benutze ich XML::Simple: --------------------------------------------------------------------------- #!/usr/bin/perl -w use XML::Simple; $xml = new XML::Simple; $data = $xml->XMLin("$ARGV[0]", ForceArray => 0 ); foreach $name (keys %{$data->{cache}} ) { print $data->{cache}{$name}{waypoints}{oc} . "\n"; } --------------------------------------------------------------------------- Relevanter Teilcode. Damit habe ich <name> als 'Handle' um auf die anderen Werte zugreifen zu könnnen. Da aber <name> eben nicht eindeutig wirft mir perl Fehlermeldungen aus: Warning: <cache> element has non-unique value in 'name' key attribute: HCC at /home/cord/bin/gps-import-ocxml line 33 wie mache ich, das ich die unique-ids in 'waypoints => oc' oder 'id => id' als Handles bekomme? Vielen Dank, Cord