- 论坛徽章:
- 5
|
本帖最后由 pitonas 于 2014-02-19 06:05 编辑
rexuekonglon.xml 文件内容如下:- <?xml version="1.0" encoding="UTF-8"?>
- <list>
- <entry>
- <author>zhangsan</author>
- <kind>add</kind>
- <filename>[color=Yellow] log4j.java[/color]</filename>
- <message>内容随意</message>
- <path>[color=Yellow]C:\code\[/color]</path>
- </entry>
- <entry>
- <author>zhangsan</author>
- <kind>modified</kind>
- <filename>[color=Orange]log.txt[/color]</filename>
- <message>增加一个空格</message>
- <path>[color=Yellow]C:\code\[/color]</path>
- </entry>
- <entry>
- <author>zhangsan</author>
- <kind>modified</kind>
- <filename>[color=Yellow] log4j.java[/color]</filename>
- <message>增加说明注释</message>
- <path>[color=Yellow]C:\code\[/color]</path>
- </entry>
- </list>
复制代码- #!/usr/bin/perl
- open my $x, 'rexuekonglon.xml';
- my $xml = do { local $/; <$x> };
- my @xml = split /(?<=<\/entry>)/, $xml;
- my %first;
- for (@xml) {
- print and next unless /entry>/;
- my ( $filename, $path ) = /\]\s*(\S*?)\s*\[.*?\]\s*(\S*?)\s*\[/s;
- print if !$first{ $path . $filename }++;
- }
复制代码 result 如下:- <?xml version="1.0" encoding="UTF-8"?>
- <list>
- <entry>
- <author>zhangsan</author>
- <kind>add</kind>
- <filename>[color=Yellow] log4j.java[/color]</filename>
- <message>内容随意</message>
- <path>[color=Yellow]C:\code\[/color]</path>
- </entry>
- <entry>
- <author>zhangsan</author>
- <kind>modified</kind>
- <filename>[color=Orange]log.txt[/color]</filename>
- <message>增加一个空格</message>
- <path>[color=Yellow]C:\code\[/color]</path>
- </entry>
- </list>
复制代码 |
|