summaryrefslogtreecommitdiffstats
path: root/kresources/groupwise/soap/extractxml.pl
diff options
context:
space:
mode:
Diffstat (limited to 'kresources/groupwise/soap/extractxml.pl')
-rwxr-xr-xkresources/groupwise/soap/extractxml.pl57
1 files changed, 57 insertions, 0 deletions
diff --git a/kresources/groupwise/soap/extractxml.pl b/kresources/groupwise/soap/extractxml.pl
new file mode 100755
index 000000000..ecab50861
--- /dev/null
+++ b/kresources/groupwise/soap/extractxml.pl
@@ -0,0 +1,57 @@
+#!/usr/bin/perl
+
+if ( @ARGV != 1 ) {
+ print STDERR "Usage: extractxml.pl <filename>\n";
+ exit 1;
+}
+
+$in = $ARGV[ 0 ];
+
+print "In: $in\n";
+
+if ( !open IN, $in ) {
+ print STDERR "Unable to open file '$in'.\n";
+ exit 1;
+}
+
+$count = 1;
+
+while ( <IN> ) {
+ if ( $xml ) {
+ if ( $_ =~ /(.*\<\/SOAP-ENV:Envelope\>)/ ) {
+ printXml( $xml . $1 );
+ $xml = "";
+ } else {
+ $xml .= $_;
+ }
+ } elsif ( $_ =~ /^(\<\?xml.*\?>)(.*)$/ ) {
+ $xml = $1 . $2;
+
+ if ( $xml =~ /(.*\<\/SOAP-ENV:Envelope\>)/ ) {
+ printXml( $1 );
+ $xml = "";
+
+ }
+ }
+}
+
+sub printXml()
+{
+ $xml = shift;
+
+ $xml =~ s/\n//g;
+ $xml =~ s/\r//g;
+
+ $out = "$in.$count.xml";
+
+ print "Out: $out\n";
+
+ if ( !open OUT, ">$out" ) {
+ print STDERR "Unable to open file '$out'.\n";
+ } else {
+ print OUT $xml;
+ close OUT;
+ }
+
+ $count += 1;
+}