The problem is that your XML is not well-formed. So the parser dies. That's what it is supposed to do. Setting the entity or the doctype in XML::Twig doesn't work, because the parser (expat) is at a lower level.
You should include the DTD declaration in your documents, staring them with <!DOCTYPE package PUBLIC "+//ISBN 0-9673008-1-9//DTD OEB 1.2 Package//EN">. You can do this on-the-fly BTW by opening the file through a pipe (open( my $package_fh, 'cat dtd_declaration real_file.xml'); $twig->parse( $package_fh);). In fact it doesn't even matter whether the DTD is available or not, as expat will gladly ignore it (as a result of course the entities will not be expanded).
In reply to Re: XML::Twig doctype and entity handling
by mirod
in thread XML::Twig doctype and entity handling
by AZed
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |