Seite 1 von 1

PyXml: Frage zur Namespace Erstellung in XML Files?

Verfasst: Freitag 26. Mai 2006, 18:53
von 7crystal7
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

Re: PyXml: Frage zur Namespace Erstellung in XML Files?

Verfasst: Freitag 26. Mai 2006, 20:12
von gerold
7crystal7 hat geschrieben:ich bräuchte diese aber unbedingt double quoted, also so "UTF8" .
Hi Babsi!

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"')
mfg
Gerold
:-)

Verfasst: Freitag 26. Mai 2006, 20:26
von 7crystal7
hmm, das ist ne Möglichkeit, ich teste das mal!

Danke :-)
Gruß
Babsi

Verfasst: Samstag 27. Mai 2006, 11:39
von 7crystal7
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

Verfasst: Samstag 27. Mai 2006, 16:29
von murph
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...

Verfasst: Samstag 27. Mai 2006, 19:38
von gerold
murph hat geschrieben:Ich habe keine Idee außer einer anderen programmiersprache...oder vllt ein modul...
Hi murph!

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"')
nichtfunktionieren würde, dann würde doch keine Sau bei Python bleiben.

@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
:-)

Verfasst: Samstag 27. Mai 2006, 20:19
von murph
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!

Verfasst: Samstag 27. Mai 2006, 21:32
von gerold
murph hat geschrieben:deine andere lösung, gerold, hatte wirklich nicht funktioniert, verscuhe es selber in der kommandozeile!
Mi murph!

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">'
>>> 
Soeben ausprobiert --> mit PyShell.
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
:-)

Verfasst: Samstag 27. Mai 2006, 21:34
von gerold
gerold hat geschrieben:Und gleiches Ergebnis mit dem original Python 2.4.2-Interpreter. System: Gentoo-Linux
Auch mit Python 2.3.5 unter Gentoo Linux bekomme ich das Ergebnis das ich erwartet habe.

mfg
Gerold
:-)

Verfasst: Samstag 27. Mai 2006, 21:38
von murph
:oops: ach, habe den Fehler gefunden :oops:

Code: Alles auswählen

>>> print s
<encoding='UTF8'>
>>> s.replace('"UTF-8"',"'UTF-8'")
"<encoding='UTF8'>"
>>> print s
<encoding='UTF8'>
:oops: :oops: :oops:

Verfasst: Samstag 27. Mai 2006, 22:12
von gerold
murph hat geschrieben:habe den Fehler gefunden
Hi murph!

Darauf möchte ich jetzt nicht herumreiten. :twisted:

lg
Gerold
:-)