Zuerst Entschuldigung für diese noob Frage, ich bin neu in XML-Parsing. Ich versuche, einige grundlegende XML mit xml::twig
zu analysieren. Ich habe es geschafft, einige Elemente mit dem unten stehenden Perl-Skript zu extrahieren, aber ich habe einige Schwierigkeiten mit anderen.Parsing XML mit variierendem Format
Ich habe es geschafft, die itemId
und title
mit dem unten angegebenen Code zu extrahieren. Aus irgendeinem Grund extrahiert das Skript jedoch nicht die convertedCurrentPrice
. Ich möchte, dass der Preis extrahiert wird - das wäre 74
im folgenden XML-Ausschnitt. Ich vermute, dass dies nicht funktioniert, weil die XML die Informationen für die convertedCurrentPrice
in einem etwas anderen Format als die itemID
und title
anzeigt.
Wie kann ich mein Skript so ändern, dass die convertedCurrentPrice
wie die anderen Werte extrahiert wird?
Hier ist ein Beispiel für die XML-Datei (testxml.xml
).
<itemId>222bb5786411</itemId><title>Radiohead In Rainbows Box Set Vinyl Deluxe Limited Edition</title><sellingStatus><currentPrice currencyId="GBP">74.0</currentPrice><convertedCurrentPrice currencyId="GBP">74.0</convertedCurrentPrice>
Hier ist mein Perl-Skript;
#!/bin/perl -w
use strict;
use XML::Twig;
my $twig = XML::Twig->new(
twig_handlers => {item => \&acct}
);
$twig->parsefile("testxml.xml");
sub acct {
my ($t, $elt) = @_;
for my $tag (qw(itemId title convertedCurrentPrice)) {
print $elt->field($tag), "\n";
}
print "\n";
print "\n";
}
__END__