Seite 1 von 1
xml.dom.minidom.parse(xmlfile) Binding/Präfix
Verfasst: Donnerstag 6. Dezember 2007, 09:48
von snoopy1234
Hallo zusammen,
ich habe folgendes Problem:
Ich muss eine xml Datei einlesen, diese verwendet Präfixe und löste diese nicht mit einem Namespace auf.
Dieses Beispiel funzt prima:
document1 = """
<products comment="funzt prima">
<Artikel></Artikel>
<Preis></Preis>
</products>
"""
document2 = """
<p:products comment="Fehler">
<Artikel></Artikel>
<Preis></Preis>
</p:products>
"""
try:
doc = minidom.parseString(document)
except expat.ExpatError, e:
raise XmlParserError('Error parsing XML file %s: %s: %s' % (CtiFileName, common.objRepr(e), ' '.join(e.args)))
Wie oder mit welcher Funktions kann ich das Document2 einlesen?
Re: xml.dom.minidom.parse(xmlfile) Binding/Präfix
Verfasst: Donnerstag 6. Dezember 2007, 09:59
von gerold
snoopy1234 hat geschrieben:Ich muss eine xml Datei einlesen, diese verwendet Präfixe und löste diese nicht mit einem Namespace auf.
Hallo snoopy1234!
Willkommen im Python-Forum!
BeautifulSoup
http://www.crummy.com/software/BeautifulSoup/ kann mit Schrott-XML umgehen.
mfg
Gerold

Verfasst: Donnerstag 6. Dezember 2007, 10:10
von gerold
Nachtrag:
Code: Alles auswählen
>>> document2 = """
... <p:products comment="Fehler">
... <Artikel>aaa</Artikel>
... <Artikel>bbb</Artikel>
... <Preis><Artikel>ccc</Artikel></Preis>
... </p:products>
... """
>>> bs = BeautifulSoup.BeautifulSoup(document2)
>>> p = bs.find("p:products")
>>> p.findChildren("artikel", recursive = False)
[<artikel>aaa</artikel>, <artikel>bbb</artikel>]
>>> for artikel in p.findChildren("artikel", recursive = False):
... artikel.string
...
u'aaa'
u'bbb'
>>>
Verfasst: Donnerstag 6. Dezember 2007, 12:02
von snoopy1234
Hallo Gerold,
vielen Dank!
Es funktioniert

)))
Sag mal wie binde ich sauber BeautifulSoup in meine Application ein.
Ich habe die Skript-Dateie BeautifulSoup in mein App Verzeichnis kopiert und mit import BeautifulSoup eingebunden.
Soll man diese Plugins in einem Unterverzeichnis bereit stellen?
Wie würde man diese dann einbinden wenn das Unterverzeichnis Plugin hiese?
Wenn ich es in die IDE einbinden möchte muss ich es dann öffen?
Verfasst: Donnerstag 6. Dezember 2007, 12:48
von gerold
snoopy1234 hat geschrieben:Ich habe die Skript-Dateie BeautifulSoup in mein App Verzeichnis kopiert
Hallo snoopy1234!
Einfach ins App-Verzeichnis. Das passt schon so.
mfg
Gerold

Verfasst: Donnerstag 6. Dezember 2007, 13:13
von snoopy1234
Sorry,
wie kann ich auf ein Attribut eines Elemtes zugreifen?
Verfasst: Donnerstag 6. Dezember 2007, 13:28
von gerold
snoopy1234 hat geschrieben:wie kann ich auf ein Attribut eines Elemtes zugreifen?
Verfasst: Donnerstag 6. Dezember 2007, 13:45
von snoopy1234
Danke funktioniert!