[問題] XML with Perl
請教一下
如何使用perl來驗證XML檔是否符合DTD的格式??
#====分隔線===
如何找出行數????
##===== V-parser.pl
#!/usr/bin/perl
use XML::LibXML;
# initialize the parser
my $parser = new XML::LibXML;
my $xmlfilename = shift @ARGV;
# open a file and parse
my $doc = $parser->parse_file( $xmlfilename );
if( $doc and $doc->is_valid ) {
print "OK, it's valid.\n";
} else {
print "Not OK. Validity error.\n";
}
##===== Q2.xml
<!DOCTYPE memo SYSTEM "memo.dtd">
<memo priority="info">
<sto>Sara Bellum</sto> <================故意錯的
<from> &myname; </from>
<message>Stop reading memos and get back to work!</message>
</memo>
##===== memo.dtd
<!ELEMENT memo (to, from, message)>
<!ATTLIST memo priority (urgent|normal|info) 'normal'>
<!ENTITY % text-only "(#PCDATA)*">
<!ELEMENT to %text-only;>
<!ELEMENT from %text-only;>
<!ELEMENT message (#PCDATA | emphasis)*>
<!ELEMENT emphasis %text-only;>
<!ENTITY myname "Bartholomus Chiggin McNugget">
##=====shell
$ V-parser.pl Q2.xml
Not OK. Validity error.
如果想找出錯誤的行數怎麼改寫??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.6.67
推
06/12 13:41, , 1F
06/12 13:41, 1F
→
06/12 14:04, , 2F
06/12 14:04, 2F
→
06/12 14:05, , 3F
06/12 14:05, 3F
※ 編輯: projectcat 來自: 140.120.6.67 (06/12 14:45)
※ 編輯: projectcat 來自: 140.120.6.67 (06/12 14:50)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章
10
113