Seite 1 von 1

pythoncode erzeugen aus einer xml-Datei??

Verfasst: Donnerstag 20. März 2008, 00:45
von Lumina
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

Verfasst: Donnerstag 20. März 2008, 01:15
von Leonidas
Hallo Lumina, willkommen im Forum,

wo kommt denn diese datei her? Kannst du eine solche Datei im Lodgeit (paste.pocoo.org) posten?

Verfasst: Donnerstag 20. März 2008, 08:30
von 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.

Verfasst: Donnerstag 20. März 2008, 10:18
von sma
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

Verfasst: Donnerstag 20. März 2008, 12:34
von Lumina
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.

Verfasst: Donnerstag 20. März 2008, 12:42
von Hyperion
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.

Verfasst: Donnerstag 20. März 2008, 13:06
von Lumina
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ß.

Verfasst: Donnerstag 20. März 2008, 13:06
von 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.

Verfasst: Donnerstag 20. März 2008, 13:57
von Hyperion
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?