pythoncode erzeugen aus einer xml-Datei??

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lumina
User
Beiträge: 7
Registriert: Donnerstag 20. März 2008, 00:39

Hallo,

ich beschäftige mich grad mit Python und XML.

Kann mir jemand vielleicht sagen, wie ich aus einer bestehenden XML Datei Python Code erzeugen lassen kann und ich dann alle Klassen und so weiter in Python Code habe?
Gibts ein Programm oder einen bestimmten Konsolenbefehl?

Danke schonmal
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo Lumina, willkommen im Forum,

wo kommt denn diese datei her? Kannst du eine solche Datei im Lodgeit (paste.pocoo.org) posten?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@Lumina: Die Frage macht so erst einmal nicht viel Sinn. XML ist eine allgemeine Auszeichnungssprache und wird für viele Zwecke eingesetzt. Man kann nicht generisch aus XML sinnvollen Python-Quelltext erzeugen.

Die Frage ist auch, ob man das überhaupt machen sollte. XML kodiert in der Regel Daten und die kann/sollte man in Programmen auch als Daten verarbeiten. Gerade in dynamischen Sprachen wie Python ist das automatische erzeugen von Quelltext oft ein unnötiger Umweg.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ist sowas gemeint?

Code: Alles auswählen

<script>
  <import module="sys"/>

  <def name="hello">
    <parameters>
      <parameter name="name" rest="false"/>
    </parameters>
    <body>
      <print-statement newline="true">
        <str-literal value="Hello"/>
        <var name="name"/>
      </print-statement>
    </body>
  </def>
  <if>
    <condition>
      <eq>
        <var name="__name__"/>
        <str-literal value="__main__"/>
      </eq>
    </condition>
    <then>
      <call>
        <function>
          <var name="hello"/>
        </function>
        <positional-arguments>
          <subscript>
            <attribute name="argv">
              <var name="sys"/>
            </attribute>
            <int-literal value="1"/>
          </subscript>
        </positional- arguments>
      </call>
    </then>
</script>
==>

Code: Alles auswählen

import sys
def hello(name): print "Hello", name
if __name__ == '__main__': hello(sys.argv[1])
:)

Stefan
Lumina
User
Beiträge: 7
Registriert: Donnerstag 20. März 2008, 00:39

Die XML Datei habe ich fertig bekommen bzw. es ist eine wsdl Datei und soll ne Art Webservice darstellen.
Bei Java konnte ich in bequem über einen Befehl aus dieser Datei .java -Dateien machen lassen. Darin waren dann alle Klassen enthalten.
Ich konnte dann ein eigenes Programm schreiben und auf die Methoden und Klassen zugreifen und mein Programm ausführen. Mein Programm simuliert ein Netzwerk und mit Hilfe der Methoden und noch paar Kleinigkeiten kann ich das Netzwerk dann im Browser simulieren und bisschen grafisch anzeigen lassen.

Nun wollte ich einfach wissen, wie man das in Python machen kann.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Lumina hat geschrieben:Die XML Datei habe ich fertig bekommen bzw. es ist eine wsdl Datei und soll ne Art Webservice darstellen.
Wieso eine Art?
Bei Java konnte ich in bequem über einen Befehl aus dieser Datei .java -Dateien machen lassen. Darin waren dann alle Klassen enthalten.
Ich konnte dann ein eigenes Programm schreiben und auf die Methoden und Klassen zugreifen und mein Programm ausführen. Mein Programm simuliert ein Netzwerk und mit Hilfe der Methoden und noch paar Kleinigkeiten kann ich das Netzwerk dann im Browser simulieren und bisschen grafisch anzeigen lassen.

Nun wollte ich einfach wissen, wie man das in Python machen kann.
Also da würd ich mal googlen - k.A. ob es da einen Generator für gibt. Bei Java hängt das ja aber auch von der verwendeten Webservice-Engine ab (ich hab bisher nur mit Axis2 gearbeitet) - zumindest beim Server.
Lumina
User
Beiträge: 7
Registriert: Donnerstag 20. März 2008, 00:39

Ok, nicht nur ne Art, sondern ein richtiger Webservice. *g*

Axis hab ich auch drauf und Apache Tomcat.

Gegooglet hab ich ja schon danach. :-) Aber nichts sinnvolles gefunden, daher dachte ich, dass hier vielleicht jemand was weiß.
Zuletzt geändert von Lumina am Donnerstag 20. März 2008, 13:06, insgesamt 1-mal geändert.
BlackJack

@Lumina: Bei Python Web Services gibt's zwei Projekte zu SOAP. Ich weiss aber nicht, ob Python die richtige Sprache dafür ist. SOAP ist aufgeblähtes und ziemlich Java-zentrisches Zeugs.

Die beiden Male wo ich Kontakt damit hatte, ging mit Python nichts. Einmal mochte die Bibliothek das WSDL nicht. Da habe ich dann mal in die Datei geschaut und mich gefragt welcher Spassvogel das S in SOAP mit dem Wort "simple" belegt hat, und das andere mal wurden irgendwelche Apache-Erweiterungen verwendet.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

BlackJack hat geschrieben:@Lumina: Bei Python Web Services gibt's zwei Projekte zu SOAP. Ich weiss aber nicht, ob Python die richtige Sprache dafür ist. SOAP ist aufgeblähtes und ziemlich Java-zentrisches Zeugs.
Hm ... jein. Also ich denke schon, dass nen Client in Python ne feine Sache sein kann - hab damit aber auch null Erfahrung.

Wenns im Backend unbedingt Python sein muss / soll, wäre evtl. Jython ne feine Alternative?
Antworten