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?
xml.dom.minidom.parse(xmlfile) Binding/Präfix
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo snoopy1234!snoopy1234 hat geschrieben:Ich muss eine xml Datei einlesen, diese verwendet Präfixe und löste diese nicht mit einem Namespace auf.
Willkommen im Python-Forum!
BeautifulSoup http://www.crummy.com/software/BeautifulSoup/ kann mit Schrott-XML umgehen.
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.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
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'
>>>
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.
-
- User
- Beiträge: 4
- Registriert: Donnerstag 6. Dezember 2007, 09:12
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?
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?
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo snoopy1234!snoopy1234 hat geschrieben:Ich habe die Skript-Dateie BeautifulSoup in mein App Verzeichnis kopiert
Einfach ins App-Verzeichnis. Das passt schon so.
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.
-
- User
- Beiträge: 4
- Registriert: Donnerstag 6. Dezember 2007, 09:12
Sorry,
wie kann ich auf ein Attribut eines Elemtes zugreifen?
wie kann ich auf ein Attribut eines Elemtes zugreifen?
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
snoopy1234 hat geschrieben:wie kann ich auf ein Attribut eines Elemtes zugreifen?
Code: Alles auswählen
artikel.get("id", None)
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.
-
- User
- Beiträge: 4
- Registriert: Donnerstag 6. Dezember 2007, 09:12
Danke funktioniert!