Thread XML::Simple - XML bearbeiten und speichern (12 answers)
Opened by guenni at 2013-02-27 12:15

guenni
 2013-02-27 12:15
#166046 #166046
User since
2013-02-27
12 Artikel
BenutzerIn
[default_avatar]
Moin,
Ich hoffe das die Frage hier richtig platziert ist, ich habe keine Rubrik für XML gefunden.
Und zwar habe ich ein Problem mit dem Zugriff auf Elemente in einem XML.
Und zwar will ich <data id="2.1"> und <data id="2.1.1"> aus dem Beispiel auslesen bzw. bearbeiten.
Im Script wäre das z.B. die Ausgabe von print "idb".
Ich bekomme aber nur "Not a HASH reference at ...".
Wobei diese verschachtelten Unterstrukturen beliebig oft vorkommen können aber nicht müssen.

Irgendwie bin ich da auf dem Holzweg und hoffe auf etwas Licht im Dunkel.

Danke
Guenni

Das XML sieht so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<datas>
<data id="1">
<page>1</page>
</data>
<data id="2">
<page>2</page>
<data id="2.1">
<page>2</page>
<data id="2.1.1">
<page>2</page>
</data>
</data>
</data>
</datas>


Und das Perl:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl
# use module
use XML::Simple;
use Data::Dumper;
$xml = new XML::Simple;
$data = $xml->XMLin("data.xml", KeyAttr => [], ForceArray => 1);
foreach $e (@{$data->{data}})
{
print "ida: ", $e->{id}, "\n";
print "idb: ", $e->{data}{id}, "\n";
}

Last edited: 2013-02-27 12:43:41 +0100 (CET)

View full thread XML::Simple - XML bearbeiten und speichern