1#!/use/bin/perl -w 2 3use strict; 4use Test::More; 5BEGIN { 6 my $add = 0; 7 eval {require Test::NoWarnings;Test::NoWarnings->import; ++$add; 1 } 8 or diag "Test::NoWarnings missed, skipping no warnings test"; 9 plan tests => 3 + $add; 10 11 eval {require Data::Dumper;Data::Dumper::Dumper(1)} 12 and *dd = sub ($) { Data::Dumper->new([$_[0]])->Indent(0)->Terse(1)->Quotekeys(0)->Useqq(1)->Purity(1)->Dump } 13 or *dd = \&explain; 14} 15 16use XML::Fast 'xml2hash'; 17 18# Parsing 19 20my $xml0 = q{<!DOCTYPE>}; 21my $xml1 = q{<?xml?> 22 <!DOCTYPE greeting [ 23 <!ELEMENT greeting (#PCDATA)> 24 ]> 25 <greeting>Hello!</greeting> 26}; 27my $xml2 = q{<?xml?><!DOCTYPE test><greeting>Hello!</greeting>}; 28 29our $data; 30{ 31 is_deeply 32 $data = xml2hash($xml0), 33 {}, 34 'doctype 0' 35 or diag dd($data),"\n"; 36} 37{ 38 is_deeply 39 $data = xml2hash($xml1), 40 { greeting => 'Hello!' }, 41 'doctype 1' 42 or diag dd($data),"\n"; 43} 44{ 45 is_deeply 46 $data = xml2hash($xml2), 47 { greeting => 'Hello!' }, 48 'doctype 2' 49 or diag dd($data),"\n"; 50} 51