File: niceXML

package info (click to toggle)
vym 1.8.1-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,000 kB
  • ctags: 1,599
  • sloc: cpp: 14,723; sh: 373; xml: 277; perl: 89; makefile: 16
file content (64 lines) | stat: -rwxr-xr-x 840 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/perl 
#
# Hack to make single-line XML file  easier to read by using indention
#
# (c) Uwe Drechsel
#
# License: GPL 

my $filename =shift;
my $s;
open (INFILE, "<$filename") ||
	die "Could not read $filename.";
$s=join("\n",<INFILE>);

$s=~s/>/>\n/gm;

my @lines=split ("\n",$s);
my $i=0;
my $is="";

foreach (@lines)
{
	if (!/<.*?\/>/)
	{
		if (/<\//)
		{
			# Closing tag
			$i--;
			if ($i<0) {$i=0};
			$is=indent($i);
			print "$is$_\n";
		} else
		{
			if (/<(?!\?)/)  # ignore <? ... ?>
			{
				# Opening tag
				print "$is$_\n";
				$i++;
				$is=indent($i);
			} else 
			{ 
				# empty lines etc
				print "$is$_\n"; 
			}
		}
	} else 
	{ 
		# Ignor single tags <../>
		print "$is$_\n"; 
	}
}
print "\n";
exit;

sub indent()
{
	my $size=shift;
	my $s="";
	for ($i=0; $i<$size; $i++)
	{
		$s=$s."  ";
	}
	return $s;
}