Announcement

Collapse
No announcement yet.

XMl Ausgabe eines URL parsen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XMl Ausgabe eines URL parsen

    Hallo Zusammen,


    Mein Problem ist das XML zu parsen. Ich habe gedacht, dass ich die XML-Ausgabe des URLs in ein Variale speicher $inhalt = get ($link) und dann den Inhalt parsen aber das habe ich nicht hinbekommen.

    Hat jemand schon die Ausgabe eines URL´s geparst?

    Bitte sehen Sie meinen Beitrag auch hier:
    http://community.perl.de/content/xm-...es-urls-parsen
    Für jede Hilfe oder Hinweis bin ich Dankbar.
    Zuletzt editiert von snaks42; 19.04.2012, 16:12.

  • #2
    Was gibt den

    "https://www.xyz.de/Ref=00"

    zuürck? XML, HTML?

    Was geht nicht ? Wo kommt was für ein Fehler?
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      Was gibt den

      "https://www.xyz.de/Ref=00" Report als XML Format.

      zuürck? XML, HTML?

      Was geht nicht ? Wo kommt was für ein Fehler?
      Funktioniert alles einwandfrei aber ich möchte die XML ausgabe zu HTML oder andere Format parsen.

      Comment


      • #4
        Dann ist doch das XML mit einer XSLT nach HTML zu transformieren
        Christian

        Comment


        • #5
          XM Ausgabe eines URLs parsen

          Originally posted by Christian Marquardt View Post
          Dann ist doch das XML mit einer XSLT nach HTML zu transformieren
          use strict;
          use CGI;
          use CGI::Carp qw(fatalsToBrowser);

          my $cgi = new CGI;


          my $var = CGI:aram('ip');


          my $url = 'https://www.xyz.de/';


          my $link = "$url?ref=var&save_report=yes" ;



          print "Location: $link\n\n";

          mit diesem Skript wird den Wert, welcher in der HTML-Seite eingegeben werde, übermitelt und liefert einen Report als XML format.
          Bin anfänger bei Perl und weiss nicht wie es genau geht.
          kannst du mir bitte ein Beispiel zeigen.
          Danke.

          Comment


          • #6
            Das ist keine Frage von PERL, sondern du musst eine XSLT Datei erstellen, mit der du das gelieferte XML nach HTML transformierst.
            Erst die XSLT Datei erstellen, dann mit PERL und der Datei das XML nach HTML transformieren

            http://www.linuxfocus.org/Deutsch/Ju...ticle156.shtml
            Christian

            Comment


            • #7
              XM Ausgabe eines URLs parsen

              Vielen Dank.
              Ich habe schon ein XSLT Datei. Diese beschreibt die komponent vom Report bzw XML Tags.
              Also ich brauche jetzt nur die XML ausgabe irgendwo speichern und mit XSLT parsen aber wie macht man das in Perl?

              Comment


              • #8
                Der

                XML:OM::Parser

                sollte auch einen String parsen und in ein XML wandeln. Das dann mittels obigen Link in HTML wandeln. Die XSLT wird ja wohl statisch irgendwo abgelegt
                Christian

                Comment


                • #9
                  XM Ausgabe eines URLs parsen

                  ich habe mein skript so aufgebaut und möchte erst mal alles statisch testen aber kommt die fehlermeldung:

                  Argument syntax of call to XML::XSLT::new deprecated. See the documentation for XML::XSLT::new at parsetoxsl.pl line 14.
                  Error while parsing:not well-formed (invalid token) at line 1, column 0, byte 0 at C:/Perl/lib/XML/P arser.pm line 187.
                  reportscan.xsl at C:/Perl/site/lib/XML/XSLT.pm line 1507.

                  use XML::XSLT;
                  #use XML::LibXML;



                  my $xmlfile = "report.xml";
                  my $xslfile = "reportscan.xsl";

                  my $parser = XML::XSLT->new ($xslfile, "reportscan.xsl");
                  $parser->transform_document ($xmlfile, "report.xml");
                  $parser->print_result();

                  woran scheitert dann?

                  Comment


                  • #10
                    Nach der Fehlermeldung ist das kein gültiges XML in der Datei
                    Christian

                    Comment


                    • #11
                      Ich kann mein XML-Report jetzt mit dem MOdul XML::Parser zu HTML konvertieren.
                      Das habe ich getestet und funktioniert.
                      Jetzt möchte nach dem Drücken des Buttons-Sendens, dass die Ausgabe (XML) in einem Verzeichnis speichern und mit dem Modul XML:: Parser parsen, sodass es mir nur HTML anzeigt.


                      #!C:\Perl\bin\Perl.exe
                      print "Content-type:text/html\n\n";

                      use CGI;
                      use CGI::Carp qw(fatalsToBrowser);
                      use LWP::Simple;
                      use XML::Simple;
                      use XML::Parser;
                      use XML::LibXML;

                      my $cgi = new CGI;
                      my $var = CGI:aram('ip');

                      my $url1 = 'https://www.xxyyzz.de'; ### url
                      my $uri = "$url1?ref=$var& save_report=yes" ; #### es gibt eine HTML-Seite mit einem Inputfeld nach der eingabe des Referenzes wird in der URL übermittelt und ganze URL an den Server des Hertsteller geleitet, so dass der server anhand des eingegeben Referenz ein Report als XMl zur Verfügung stellt.

                      print "Location: $uri\n\n";


                      open(KIRSCHE,">>c:/Programme/Apache/cgi-bin/grab.xml"); ####XML Ausgabe soll in dieser Datei gespeichert
                      select(KIRSCHE);

                      print KIRSCHE $doc;
                      select(STDOUT);

                      close(KIRSCHE);

                      my $zeiger = new XML::Parser (); ######die gespeicherte Datei parsen

                      $zeiger->setHandlers (
                      Start => \&anfang,
                      End => \&ende,Char=>\&inhalt );
                      $zeiger->parsefile ("grab.xml");

                      print "<html><head><body>";


                      sub inhalt
                      {
                      ($wert_des_zeigers,$inhalt)=@_;
                      print " <table><td>$inhalt</td></table>";
                      }

                      sub ende
                      {
                      %watnu2=("SCAN"=>"</table>","KEY"=>
                      "</td>","IP"=>"</td>","OS"=>"</td>","NETBIOS_HOSTNAME"=>"</td></tr>");
                      ($wert_des_zeigers,$endtag) = @_;
                      print "$watnu2{$endtag}";
                      }

                      sub anfang
                      {
                      %watnu1=("SCAN"=>"</table>","KEY"=>
                      "</td>","IP"=>"</td>","OS"=>"</td>","NETBIOS_HOSTNAME"=>"</td></tr>");

                      $wert_des_zeigers = shift;
                      $starttag=shift;
                      print $watnu1{$starttag};
                      print "\n";
                      }
                      print "</body></html>";

                      Wie oben beschrieben, will die XML Ausgabe des URLs in der XML Datei (grab.xml) speichern und diese zu html parsen.
                      Bin ich auf f´den richtigen Weg oder gibt es einen einfachen Weg.
                      Also mit XML::LibXSLT habe ich ganze Zeit versucht zu installieren aber scheitert bei jedem Versuch.

                      Für jede Hilfe werde ich mich sehr freuen.

                      Vielen Dank im Voraus.

                      Comment


                      • #12
                        Senden? UP- oder Download der Datei? Warum greift der Client in den Konvertierungsprozess ein?
                        Christian

                        Comment


                        • #13
                          ich habe ein html seite. Diese Seite verfügt über ein Inputfeld, in dem man ein referenz eingibt.
                          Nach der Eingabe des Referenzes und Button senden drücken übernimmt perl skript die übermittelte Wert und leitet die URL weiter (redirekt).
                          Empfängt der Server vom Hersteller die Anfrage leitet diese eine response als XML. Mein Problem ist dies XML zu konvertieren.

                          Comment


                          • #14
                            Ja, so hattest du es bisher geschildert. Jeodch

                            Ich kann mein XML-Report jetzt mit dem MOdul XML::Parser zu HTML konvertieren.
                            Das habe ich getestet und funktioniert.
                            Jetzt möchte nach dem Drücken des Buttons-Sendens, dass die Ausgabe (XML) in einem Verzeichnis speichern und mit dem Modul XML:: Parser parsen, sodass es mir nur HTML anzeigt.
                            Wenn du es konvertiert hast, warum ist dann noch ein Button zu drücken?Wie kann nach dem drücken schon eine Ausgabe da sein? Und Beitrag 9 zeigt, wie die Transformation gemacht wird.

                            Dachte das läuft so
                            1. Button übermittelt RefernzNr
                            2. XML wird anhand der Nummer erzeugt
                            3. XML wird nach HTML transformiert
                            4. das HTML wird zum Client gesandt

                            Da ist zwischen 2 und 3 kein Button
                            Christian

                            Comment


                            • #15
                              Sorry ich glaube habe ich wenig ausgedrückt.

                              der Hersteller bietet eine vorkonfigurierte API.
                              Man kann nur z.B auf der Adresse leiste eines Browser die ULR eingeben mit einem definierten Referenz und wird man ein XML als rückgabe bekommen.

                              Ich habe eine HTML-Seite diese HTML_Seite enthält ein INputfeld, in dem man dieser referenz eingibt und klickt auf senden oder einfach enter. dahinter des html seite liegt ein kleinen perl skript der der eingebene wert übernimmt und leitet die URL kommplet weiter.

                              Dann kommt XML als response.

                              Es ist genau wie du es geschildert hast.

                              Ich habe gesagt, dass ich die Konvertierung bekamm nur (manual)

                              siehe bitte mein skript ab xml parser $ zeiger da kann eine xml gespeicherte datei zu hatm umwandeln.

                              Comment

                              Working...
                              X