Friday, November 06, 2009

Einfaches Skript, um XML gegen DTD zu prüfen

Weil es in letzter Zeit vermehr nachgefragt wurde: Ein kleines Perl-Programm, mit dem man eine XML-Datei gegen eine (externe) DTD prüfen kann:

#!/usr/bin/perl

use strict;
use warnings;
use XML::LibXML;

my $dtd_file = $ARGV[1];
my $xml_file = $ARGV[0];

my $schema = XML::LibXML::Dtd->new( "", $dtd_file );
my $parser = XML::LibXML->new;
$parser->keep_blanks(0);

my $tree = $parser->parse_file( $xml_file );
eval{
$tree->validate( $schema );
1;
} or die "Can't validate $xml_file: $@";

print "alles ok!"


Dann ruft man es einfach mit perl skript.pl test.xml test.dtd auf.

Perl und XML ist auch Thema in der aktuellen Ausgabe des Perl-Magazins $foo.

No comments: