Hallo Leute,
ich erstelle mit pyxml ein DOM konformes XML File. Das Problem ist das meine xmlns Angaben sowie die erste Klammer <? .. encoding='UTF8'> usw. nur in einfachen Hochkommas sind, ich bräuchte diese aber unbedingt double quoted, also so "UTF8" .
Wisst ihr wie ich das anstelle?
Danke
Babsi
PyXml: Frage zur Namespace Erstellung in XML Files?
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Babsi!7crystal7 hat geschrieben:ich bräuchte diese aber unbedingt double quoted, also so "UTF8" .
Ich würde mir da nicht zu viel antun und nach dem Erstellen des XML-Strings die Teile die mir nicht passen, einfach und schlicht ersetzen.
Code: Alles auswählen
mein_xmlstring.replace("encoding='UTF8'", 'encoding="UTF8"')
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hmm, das funktioniert leider nicht :-/
Die ersten beiden Zeilen im XML File müssen unbedingt so aussehen, ich bekomm das mit pyxml einfach nicht hin:
<?xml version="1.0" encoding="UTF-8"?>
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNameSpaceSchemaLocation="Domain.xsd">
Wisst ihr weiter?
Danke
Babsi
Die ersten beiden Zeilen im XML File müssen unbedingt so aussehen, ich bekomm das mit pyxml einfach nicht hin:
<?xml version="1.0" encoding="UTF-8"?>
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNameSpaceSchemaLocation="Domain.xsd">
Wisst ihr weiter?
Danke
Babsi
Das Problem scheint darin zuu liegen, dass für Python die gänsefüßchen gleich dem hochkomma sind; Python wandelt das ja acuh um!
Ich habe keine Idee außer einer anderen programmiersprache...oder vllt ein modul...
Ich habe keine Idee außer einer anderen programmiersprache...oder vllt ein modul...
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi murph!murph hat geschrieben:Ich habe keine Idee außer einer anderen programmiersprache...oder vllt ein modul...
Darum kann man ja (') gegen (") tauschen und umgekehrt. Wir brauchen wegen so einer Lapalie doch keine andere Programmiersprache. Zur Not kann man die Strings ja sogar noch in (""") oder (''') einpacken.
Wenn dieser Befehl
Code: Alles auswählen
mein_xmlstring.replace("encoding='UTF8'", 'encoding="UTF8"')
@Babsi: Mehr Infos; Mehr Code; Du scheiterst wahrscheinlich an etwas komplett Einfachen. Aber trotzdem: trau dich und zeig uns eine Fehlermeldung und ein wenig Code. Warum glaubst du, dass ein einfaches Replace nicht funktioniert? Vielleich ist der bessere Weg, einfach die ersten beiden Zeilen zu ersetzen... Aber genaueres, wenn wir mehr über dein Problem wissen.
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nur mit drei gänsefüßchen oder hochkommas funktioniert das,
deine andere lösung, gerold, hatte wirklich nicht funktioniert, verscuhe es selber in der kommandozeile!
deine andere lösung, gerold, hatte wirklich nicht funktioniert, verscuhe es selber in der kommandozeile!
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Mi murph!murph hat geschrieben:deine andere lösung, gerold, hatte wirklich nicht funktioniert, verscuhe es selber in der kommandozeile!
Ich verstehe deine Aussage noch nicht ganz:
Code: Alles auswählen
>>> s = "<encoding='UTF8'>"
>>> s
"<encoding='UTF8'>"
>>> s.replace("'", '"')
'<encoding="UTF8">'
>>> s.replace("encoding='UTF8'", 'encoding="UTF8"')
'<encoding="UTF8">'
>>>
Gleiches Ergebnis mit iPython. Und gleiches Ergebnis mit dem original Python 2.4.2-Interpreter.
System: Gentoo-Linux
...und gleiches Ergebnis mit dem original Python 2.4.1-Interpreter unter Windows 2000.
Zeig doch mal ein wenig Code.
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Auch mit Python 2.3.5 unter Gentoo Linux bekomme ich das Ergebnis das ich erwartet habe.gerold hat geschrieben:Und gleiches Ergebnis mit dem original Python 2.4.2-Interpreter. System: Gentoo-Linux
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
ach, habe den Fehler gefunden
Code: Alles auswählen
>>> print s
<encoding='UTF8'>
>>> s.replace('"UTF-8"',"'UTF-8'")
"<encoding='UTF8'>"
>>> print s
<encoding='UTF8'>
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi murph!murph hat geschrieben:habe den Fehler gefunden
Darauf möchte ich jetzt nicht herumreiten.
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.