我有一个 XML 文件,我需要使用 Perl(不使用 XSLT)将其传输到列表中。
这是我的(简化,删除了 10 多个属性以使其更易于阅读!)XML:
...
<XMLTAG ID="1" name="NAME1" status="0" date1="24.05.2012 13:37:00" date2="25.05.2012 13:37:00" />
<XMLTAG ID="2" name="NAME2" status="1" date1="24.05.2012 13:37:00" date2="25.05.2012 13:37:00" />
<XMLTAG ID="3" name="NAME3" status="0" date1="24.05.2012 13:37:00" date2="25.05.2012 13:37:00" />
...
到目前为止我得到了什么:
my $input = in.xml;
my $output = out.txt;
# open input
open( INPUT, $input )
|| die "Can't find $input: $_";
# open output
open( OUTPUT, ">$output" )
|| die "Can't find $output: $_";
# run until perl returns undef (at the end of the file)
while (<INPUT>) {
if ($_ == /date1=\"[0-3]?[0-9].[0-3]?[0-9].(?:[0-9]{2})?[0-9]{2} [0-5][0-9]:[0-5][0-9]:[0-5][0-9]\"/) {
print OUTPUT $_;};
}
close(INPUT);
close(OUTPUT);
输出文件应如下所示:
date1="24.05.2012 13:37:00"
date1="24.05.2012 13:37:01"
date1="24.05.2012 13:37:02"
...
在此先感谢,马利