Seite 1 von 2

Elementtree Einstellungen

Verfasst: Freitag 6. März 2015, 10:55
von Killigen
Hallo an Alle,

dies ist mein erster Post hier im Forum, also bitte um Nachsicht. :roll:

Die Frage ist gleich ziemlich speziell:

Ich verwende zur Zeit zum Bearbeiten eines xml- Files den Elementtree. Dieser gibt die Attributwerte zum Beispiel <person id="1"> in diesen Zeichen aus: ""

Mein Problem: Ich benötige für ein bestimmtes Programm allerdings Folgendes: <person id='1'> also die Ausgabe des Attributwertes nicht in diesen Zeichen "" sondern in diesen ''.

Gibt es also für die write- Funktion eine Einstellung in der man das realisieren kann?

Grüße

Killigen

Re: Elementtree Einstellungen

Verfasst: Freitag 6. März 2015, 11:54
von EyDu
Hallo und willkommen im Forum!

Die Double Quotes sind fest codiert, das kannst du nicht mittels Parametern steuern. Du könntest natürlich das XML in einen String umwandeln und mittels replace die Quotes entsprechend ersetzen. Ich würde mich aber nicht darauf verlassen, dass das unbedingt in jedem Fall funktioniert.

Warum brauchst du die Änderung überhaupt? Beide Varianten sind zulässig, dein anderes Programm sollte damit klarkommen. Kannst du nicht dort ansetzen? Das wäre die saubere Lösung.

Re: Elementtree Einstellungen

Verfasst: Freitag 6. März 2015, 12:05
von Sirius3
@Killigen: ein Programm, das valides XML verarbeiten kann, kommt mit beiden Varianten klar. Was ist denn das für ein anders Programm, das damit Probleme hat?

Re: Elementtree Einstellungen

Verfasst: Freitag 6. März 2015, 13:30
von Killigen
Leider verwende ich das Programm in der Arbeit und es ist sehr projektspezifisch.

Es gibt also keine Möglichkeit die Werte so ausgeben zu lassen: abc='xyz'?

Eine wichtige Frage, die sich mir noch stellt: Ich bekomme vor dem xml_File diese zwei Zeilen nicht hin:

<?xml version='1.0' encoding='utf-8' standalone='no'?>
<!DOCTYPE CANDELA SYSTEM 'candela.dtd'>

es wird gleich mit dem root- Element gestartet...

Re: Elementtree Einstellungen

Verfasst: Freitag 6. März 2015, 13:39
von Hyperion
Killigen hat geschrieben:Leider verwende ich das Programm in der Arbeit und es ist sehr projektspezifisch.
Das bedeutet ja nicht automatisch, dass man da drin nichts korrigieren kann ;-)
Killigen hat geschrieben: Es gibt also keine Möglichkeit die Werte so ausgeben zu lassen: abc='xyz'?
EyDu hatte Dir doch schon eine Lösung genannt!

Re: Elementtree Einstellungen

Verfasst: Freitag 6. März 2015, 13:55
von BlackJack
@Killigen: Die XML-Deklaration bekommt man mit dem entsprechenden Argument beim serialisieren. Den DOCTYPE wohl nur hässlich manuell oder man verwendet `lxml.etree` das dafür auf `ElementTree`-Objekten ein `docinfo`-Attribut hat über das man unter anderem den DOCTYPE setzen und auslesen kann.

Wenn dieses andere Programm kein XML verarbeiten kann dann würde ich auf jeden Fall einen Bugreport beim Autor aufmachen. Da wird extra ein allgemeines Rahmendatenformat für den einfacheren Austausch zwischen Programmen spezifiziert und dann gibt es immer wieder Leute die es schaffen das nicht zu ordentlich verarbeiten oder invalides XML zu produzieren. Das ist ein Armutszeugnis. :evil:

Re: Elementtree Einstellungen

Verfasst: Dienstag 17. März 2015, 15:02
von Killigen
Vielen dank an alle für eure Antworten!

Habe das Tool jetzt so angepasst damit ich keine Probleme mehr habe!

Re: Elementtree Einstellungen

Verfasst: Dienstag 17. März 2015, 15:28
von Hyperion
Killigen hat geschrieben: Habe das Tool jetzt so angepasst damit ich keine Probleme mehr habe!
Also noch mal zum Verständnis: Du konntest also das Programm korrigieren, welches das fehlerhafte XML produziert hat?

Re: Elementtree Einstellungen

Verfasst: Dienstag 17. März 2015, 15:39
von Killigen
Nein das "fehlerhafte" xml wurde ja vom Elementtree produziert...
Aber das welches Probleme hatte mit dem Einlesen konnte ich jetzt abändern...

Re: Elementtree Einstellungen

Verfasst: Dienstag 17. März 2015, 16:52
von Hyperion
Killigen hat geschrieben:Nein das "fehlerhafte" xml wurde ja vom Elementtree produziert...
Äh... nö! Ganz sicher nicht!
Killigen hat geschrieben: Aber das welches Probleme hatte mit dem Einlesen konnte ich jetzt abändern...
Ach so rum war es... dann war das XML nicht fehlerhaft, sondern ein Konsument davon hatte einen fehlerhaften Parsing-Code!

Re: Elementtree Einstellungen

Verfasst: Mittwoch 18. März 2015, 10:23
von Killigen
Oh doch sicher schon :D
Ich rede ja von "fehlerhaft" nicht von fehlerhaft... :D

Das Programm das ich benutzt habe ich ja nichts produziert sondern nur eingelesen...
Der Parsing Code war ansicht auch nicht fehlerhalt. Es hat sich um ein proprietäres Parsing gehandelt...

Re: Elementtree Einstellungen

Verfasst: Mittwoch 18. März 2015, 10:36
von Sirius3
@Killigen: wenn etwas proprietär ist, kann es nicht fehlerhaft sein???? Deine Logik möchte ich verstehen. Oder stand im Kleingedruckten "wir parsen kein XML, wer's dennoch versucht ist selbst schuld."?

Re: Elementtree Einstellungen

Verfasst: Mittwoch 18. März 2015, 10:57
von Killigen
Was hat das damit zu tun? Prioprietär heißt nur, dass es sich um eine herstellerspezifische Software handelt, die auch nur ein proprietäres xml- Format verarbeiten kann...

Re: Elementtree Einstellungen

Verfasst: Mittwoch 18. März 2015, 11:05
von Sirius3
es gibt kein proprietäres xml-Format! Es gibt nur ein vom w3c spezifiziertes xml-Format. Wer also behauptet, xml lesen zu können, aber es nicht kann, täuscht seine Kunden, liefert ein fehlerhaftes Produkt.

Re: Elementtree Einstellungen

Verfasst: Mittwoch 18. März 2015, 11:18
von Hyperion
Sirius3 hat geschrieben:es gibt kein proprietäres xml-Format! Es gibt nur ein vom w3c spezifiziertes xml-Format. Wer also behauptet, xml lesen zu können, aber es nicht kann, täuscht seine Kunden, liefert ein fehlerhaftes Produkt.
+1 :D

Re: Elementtree Einstellungen

Verfasst: Mittwoch 18. März 2015, 11:20
von Killigen
Es gibt schon prorietäres xml-Format...
Es wird grundstätzlich xml verwendet, welches aber an einigen Stellen leicht abgeändert ist, um das bearbeiten der Dokumente durch Scripte zu erschweren bzw. unmöglich zu machen.
Das "verpflichtet" Firmen die auf solche Tool angewiesen sind teure Lizenzgebüren zu zahlen... Sowas nennt sich Marketing -.-

Re: Elementtree Einstellungen

Verfasst: Mittwoch 18. März 2015, 12:01
von Sirius3
@Killigen: prorietäres xml-Format könnte man z.B. die Office-XML-Formate von Microsoft nennen, die zwar gültiges XML sind, aber darübergestülpt noch ihr eigenes Format haben. Das ist aber trotzdem gültiges XML. Kein kaputtes XML. Das ist der entscheidende Unterschied. Kaputtes XML darf man nicht XML nennen.

Re: Elementtree Einstellungen

Verfasst: Mittwoch 18. März 2015, 12:16
von Killigen
@Sirius: Was bitte verstehst du genau unter darübergestülpt?

Das ist auch gültiges xml- Format nur dass es zum Beispiel attr='2' nicht lesen kann (bzw. aus Marketingsicht nicht will) attr="2" aber schon.

Wenn ich deiner Interpretation von darübergestülpt folge, ist das genau das gleiche...

Es wird auch die Arbeit mit gewissen Dateien - durch andere Programme - durch Reglementierung erschwert bzw. verhindert...

Re: Elementtree Einstellungen

Verfasst: Mittwoch 18. März 2015, 12:32
von snafu
@Sirius3: Denk an dein Herz... ;)

Re: Elementtree Einstellungen

Verfasst: Mittwoch 18. März 2015, 12:43
von jerch
@Killigen:
Da sich jmd. ersthaft XML genommen, die Syntax so abgewandelt, dass jeder standardkonforme XML-Parser aufgibt - nur um die Verarbeitung der Daten zu erschweren? Da hat jmd. zuviel Zeit/Geld resp. gelangweilte Entwickler, mit einem eigenen Binärformat ist man da doch 1000x schneller am fragwürdigen Ziel. :roll:
Wobei die single-quote-Sache ja erlaubt ist (siehe http://www.w3.org/TR/xml/#NT-AttValue). Welche Abweichungen vom Standard sind denn so drin?