#*****************************************************************#
  # ALLGEMEIN:                                                      #
  # SOAP in Datenbank importieren                                   #
  #*****************************************************************#
  
  use strict;
  use DBI;
  use SOAP::MySOAP;

  # Datenbankverbindung herstellen
  my $dbh =
    DBI->connect( "DBI:mysql:database", "username",
    "password", { RaiseError => 1, PrintError => 0 } );

  # Anfrage-XML schicken
  $XML = '<?xml version="1.0" encoding="utf-8"?>
          <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  		  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  		  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  		  <soap:Body>
  		   <GetCoordinates>
  		    <objRequest>
  		     <Language>DE</Language>
  		     <Token>Geographytest</Token>
  		    </objRequest>
  		   </GetCoordinates>
  		  </soap:Body>
  		  </soap:Envelope>';
  
  my $client = SOAP::MySOAP->new(http:/webservices.de/test.asmx?WSDL);
  my $reply = $client->request($XML);

  # Antwort-XML formatieren  
  $reply = &utf82ascii($reply);
  $reply =~ s/></>\n</g;
  
  # Anfwort-XML zerlegen
  my $i = -1;
  while ( $reply =~ s/<(.*)>(.*)<\/.*>// ) {
    my $tag = $1;
    my $data = $2;
  
    if    ( $tag eq "Name" )   { $i++; $NAME[$i] = $data; }
    elsif ( $tag eq "Street" ) { $STR[$i]  = $data; }
    elsif ( $tag eq "City" )   { $ORT[$i]  = $data; }
  }
  
  # Datensatz speichern  
  for ( my $j = 0 ; $j <= $i ; $j++ ) 
  {
my $SQL = "INSERT INTO tabelle SET name = $NAME , strasse = $STR ort = $ORT "; $dbh->do ( $SQL ); } #*****************************************************************# # Subroutinen # # utf-8 codierung in ASCII ändern # #*****************************************************************# sub utf82ascii() { my $STRING = $_[0]; $STRING =~ s/([\xC0-\xC3])([\x80-\xBF])/ chr( (ord($1) & 3)*64 + (ord($2) & 63))/eg; return $STRING; }