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.
dies ist mein erster Post hier im Forum, also bitte um Nachsicht.
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?
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.
@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?
@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.
Oh doch sicher schon
Ich rede ja von "fehlerhaft" nicht von fehlerhaft...
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...
@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."?
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...
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.
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.
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 -.-
@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.
@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.
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?