$ cat -n simple1.pl 显示XML的代码
1 #!/usr/bin/perl
2 # simple.pl
3 use Data::Dumper;
4 use warnings;
5 use strict;
6 use XML::Simple;
7 my ($simple,$data,$date);
8 $simple=new XML::Simple(forcearray=>1);
9 $data=$simple->XMLin('./invoice.xml');
10
11 print Dumper $data;
其中invoice.xml为
<?xml version="1.0" standalone="no"?>
<!DOCTYPE invoice SYSTEM "inXML.dtd">
<invoice partner="Lendl's Widgets" partner_id="0000LW">
<number>L593</number>
<customer>
<status>new</status>
<name>Mike Seaver</name>
<email>mikeseaver@mycompany.com</email>
<address>
<street>438 Warm Springs Boulevard</street>
<location>Suite 127</location>
<city>San Francisco</city>
<state>CA</state>
<zip>95412</zip>
<notes>Across from the clock tower.</notes>
</address>
</customer>
<date>
<month>10</month>
<day>27</day>
<year>2000</year>
</date>
<items>
<item>
<part_id>R96737</part_id>
<quantity>1</quantity>
<description>Extra Long Titanium and Graphite Racquet</description>
<price currency="dollars">94.99</price>
</item>
<item>
<part_id>R9263</part_id>
<quantity>1</quantity>
<description>Super Support Cross Trainers</description>
<price currency="dollars">57.99</price>
</item>
</items>
<billing>
<subtotal currency="dollars">152.98</subtotal>
<tax rate="8.25" unit="percent" currency="dollars">12.62</tax>
<total currency="dollars">165.60</total>
<payment type="cc">
<reference id="VISA" expiration="06/01">
1234 5678 9012 3456
</reference>
<amount currency="dollars">165.60</amount>
</payment>
</billing>
</invoice>
显示后的结构为:
$VAR1 = {
'number' => [
'L593'
],
'date' => [
{
'month' => [
'10'
],
'day' => [
'27'
],
'year' => [
'2000'
]
}
],
'customer' => [
{
'email' => [
'mikeseaver@mycompany.com'
],
'status' => [
'new'
],
'name' => [
'Mike Seaver'
],
'address' => [
{
'zip' => [
'95412'
],
'city' => [
'San Francisco'
],
'location' => [
'Suite 127'
],
'notes' => [
'Across from the clock tower.'
],
'street' => [
'438 Warm Springs Boulevard'
],
'state' => [
'CA'
]
}
]
}
],
'partner_id' => '0000LW',
'billing' => [
{
'payment' => [
{
'amount' => [
{
'currency' => 'dollars',
'content' => '165.60'
}
],
'reference' => {
'VISA' => {
'expiration' => '06/01',
'content' => '
1234 5678 9012 3456
'
}
},
'type' => 'cc'
}
],
'subtotal' => [
{
'currency' => 'dollars',
'content' => '152.98'
}
],
'tax' => [
{
'currency' => 'dollars',
'rate' => '8.25',
'unit' => 'percent',
'content' => '12.62'
}
],
'total' => [
{
'currency' => 'dollars',
'content' => '165.60'
}
]
}
],
'items' => [
{
'item' => [
{
'part_id' => [
'R96737'
],
'quantity' => [
'1'
],
'price' => [
{
'currency' => 'dollars',
'content' => '94.99'
}
],
'description' => [
'Extra Long Titanium and Graphite Racquet'
]
},
{
'part_id' => [
'R9263'
],
'quantity' => [
'1'
],
'price' => [
{
'currency' => 'dollars',
'content' => '57.99'
}
],
'description' => [
'Super Support Cross Trainers'
]
}
]
}
],
'partner' => 'Lendl\'s Widgets'
};