Utz: In IE geänderte XML-Datei speichern ohne HTTP-Connection

Hi zusammen,

ich versuche im Augenblick etwas zu bauen, was nicht hinhaut. Folgendes: Aus einem Programm heraus wird der IE inkl. einer XML-Datei aufgerufen (ohne HTTP-Verbindung also). Die Datei wird mit XSLT formatiert und angezeigt - inkl. Formulartextfeldern an den Stellen, an denen Änderungen an der XML-Datei möglich sein sollen. Jetzt suche ich nach einem Weg, diese Änderungen abspeichern zu können. Wie gesagt, es gibt keine HTTP-Connection und auch keinen Server, an den man das Formular schicken könnte. Meine einzige Idee ist, ein ActiveX-Objekt zu bauen, das die Änderungen abspeichert. Hat irgendwer noch ne andere Idee? Wäre um jeden Tipp dankbar.

Was ich auch schon versucht habe: Data Islands. Das geht eigentlich auch, aber auch hier finde ich keinen Weg, die geänderte XML-Datei zu speichern, ohne einen Server zur Verfügung zu haben.

Na ja, vielleicht hat ja wer von Euch ne Idee ob da irgendwas zu machen ist.

Grüße,

Utz

  1. Grüssi

    Aus einem Programm heraus wird der IE inkl. einer XML-Datei aufgerufen (ohne HTTP-Verbindung also). Die Datei wird mit XSLT formatiert und angezeigt - inkl. Formulartextfeldern an den Stellen, an denen Änderungen an der XML-Datei möglich sein sollen. Jetzt suche ich nach einem Weg, diese Änderungen abspeichern zu können. Wie gesagt, es gibt keine HTTP-Connection und auch keinen Server, an den man das Formular schicken könnte.

    Perl? Oder eine andere Programmiersprache (Java,C++)? Dazu brauchts keinen Webserver, nur Interpreter/Compiler. Wenn du mit Javascript eine URL zusammenstückelst und die Formularfelder(werte) händisch an ein Perl-script übergibst müsste das doch klappen oder hab ich irgendwo nen Denkfehler?

    lg bernhard

    1. Hi Bernhard,

      Perl ist leider auch nicht möglich, aber - bevor man jetzt lange rumprogrammiert und dann merkt, dass es gar nicht geht - geht denn sowas prinzipiell?

      <form action="c:\irgendwas.exe?formulardatenusw." method="post">

      Kommt da nicht ne Sicherheitsabfrage hoch? Und wenn nicht: Woher soll die exe wissen, welche Daten ihr übergeben werden? Da müsste ich doch eher nen Command Line-Aufruf machen - aber da fliegt mir doch der Browser aus der Kurve. Wie immer: wenn wer sowas schon mal wo gesehen hat (nur den Aufruf), wär ich um nen Link dankbar.

      Grüße,

      Utz

      1. Grüssi

        <form action="c:\irgendwas.exe?formulardatenusw." method="post">

        Dürfte rein theoretisch nicht gehen, da ein Formular doch über HTTP verschickt wird, wie die Methode schon sagt. Und da kein Server installiert wird ...

        Ich hätte eigentlich Javascript gemeint: location.href = script.pl?parameterwurst

        Hab das allerdings bei mir mal ausprobiert: Der IE bietet mir die Perl-Datei zum Download an. Komisch, ich hätte doch tatsächlich geglaubt das funktionieren könnte :-/

        lg bernhard

        1. Grüssi

          <form action="c:\irgendwas.exe?formulardatenusw." method="post">

          Dürfte rein theoretisch nicht gehen, da ein Formular doch über HTTP verschickt wird, wie die Methode schon sagt. Und da kein Server installiert wird ...

          Der IE zumindest macht da sowieso nicht mit. Parameter an lokale Programme übergeben funzt nich. Irgendwie müssen die ja in das Programm rein, und dafür ist ja auch schließlich das CGI zuständig. URL-Parameter hätten vielleicht noch in Kommandozeilenparamter umgewandelt werden können, aber POST-Daten?

          Wie wärs, anstatt eines eigenen Webservers einen eigenen Browser einzubauen? ;-)
          Der zeigt die Seiten in einem HTMLView an und wandelt die Link-Anforderungen entsprechend um. Ich glaube, um eine selbstprogrammierte Lösung kommt man da wohl nicht rum.

          1. Hi,

            Ich glaube, um eine selbstprogrammierte Lösung kommt man da wohl nicht rum.

            Ja, ich glaube, anders geht's wohl nicht (außer es hätte noch wer ne zündende Idee?) - vielen Dank jedenfalls an Euch Beide fürs Mitüberlegen.

            Grüße,

            Utz

  2. Hi!

    ich versuche im Augenblick etwas zu bauen, was nicht hinhaut. Folgendes: Aus einem Programm heraus wird der IE inkl. einer XML-Datei aufgerufen (ohne HTTP-Verbindung also). Die Datei wird mit XSLT formatiert und angezeigt - inkl. Formulartextfeldern an den Stellen, an denen Änderungen an der XML-Datei möglich sein sollen. Jetzt suche ich nach einem Weg, diese Änderungen abspeichern zu können. Wie gesagt, es gibt keine HTTP-Connection und auch keinen Server, an den man das Formular schicken könnte. Meine einzige Idee ist, ein ActiveX-Objekt zu bauen, das die Änderungen abspeichert. Hat irgendwer noch ne andere Idee? Wäre um jeden Tipp dankbar.

    Du hast also keine HTTP-Verbindung, weil Du die Seite lokal aus einem Programm aufrufst? Wenn sonst nichts gegen eine HTTP-Verbindung spricht, warum baust Du dann nicht einen Mini-Webserver ein, der nur die Seiten liefert und noch ein Speicher-Script aufrufen kann? Sowas muss es doch sicher irgendwo geben. Was ist das für ein Programm, dass den Browser startet? Kann man da nicht vielleicht den Webserver direkt mit einbauen?

    VG Simon

    1. Hi Simon,

      Du wirst lachen, da ist schon längst n Webserver mit drin - aber halt nur für den WAN-Betrieb. Im LAN soll es halt - so die Vorgabe - ohne HTTP gehen. Das Problem war IIRC, dass niemand im Vorfeld weiß, welche IP oder Namen der Webserver im LAN haben wird, sodass auch keiner weiß, an welche HTTP-Adresse das Formular geschickt werden könnte.

      Grüße,

      Utz

  3. hallo,

    Meine einzige Idee ist, ein ActiveX-Objekt zu bauen, das die Änderungen abspeichert.

    würde ich auch eher sagen.
    mit dem "Scripting.FileSystemObject" müsste das möglich sein.
    du kannst dir den 'dhtmled' einen activX editor von MS herunterladen, und damit herumexperimentieren.
    allerdings ich würde nicht formular und post benützen, sondern einfach die änderungen speichern.

    grüße
    thomas

    1. Hi Thomas,

      auch Dir vielen Dank fürs Überlegen - tja, wird mir wohl nix anderes übrigbleiben als den etwas aufwändigeren Weg zu gehen (allerdings wirds wohl eher darauf hinauslaufen, dass ein IE-Control in ein Programmfenster eingebaut wird, dann muss ich nicht die Installation eines IE voraussetzen).

      Grüße,

      Utz