Domanda

Mi piacerebbe analizzare un semplice, piccolo file XML utilizzando python comunque lavorare su PyXML sembra aver cessato. Mi piacerebbe usare Python 2.6, se possibile. Qualcuno può raccomandare un parser XML che funzionerà con 2.6?

Grazie

È stato utile?

Soluzione

Se è piccolo e semplice poi basta utilizzare la libreria standard di :

from xml.dom.minidom import parse
doc = parse("filename.xml")

Ciò restituirà un albero DOM attuazione della norma Document Object Model API

Se in seguito bisogno di fare cose complesse come la convalida dello schema o XPath interrogazione allora vi consiglio di terze parti lxml modulo , che è un wrapper per il popolare libreria libxml2 C.

Altri suggerimenti

Per la maggior parte dei miei compiti mi hanno usato l'attuazione minidom leggero DOM, dalla pagina ufficiale:

from xml.dom.minidom import parse, parseString

dom1 = parse('c:\\temp\\mydata.xml') # parse an XML file by name

datasource = open('c:\\temp\\mydata.xml')
dom2 = parse(datasource)   # parse an open file

dom3 = parseString('<myxml>Some data<empty/> some more data</myxml>')

Qui è anche un ottimo esempio su come utilizzare minidom insieme a spiegazioni .

lxml soddisfare le vostre esigenze? Il suo primo strumento mi rivolgo a per xml parsing.

Alcuni anni fa, ho scritto una libreria per lavorare con strutturato XML. Rende più semplice XML facendo alcune ipotesi di limitazione.

Si potrebbe utilizzare XML per qualcosa di simile a un documento di word processor, nel qual caso si dispone di una zuppa complicata di cose con tag XML incorporati in tutto il luogo; nel qual caso mia biblioteca non sarebbe buono.

Ma se si utilizza XML per qualcosa di simile a un file di configurazione, la mia biblioteca è piuttosto conveniente. Definite le classi che descrivono la struttura del file XML che si desidera, e una volta che si hanno le classi di fatto, c'è un metodo per trangugiare in XML e analizzarlo. L'analisi attuale è fatto da xml.dom.minidom, ma poi la mia libreria estrae i dati e lo mette nelle classi.

La parte migliore: si può dichiarare un tipo "Collection" che sarà una lista Python con zero o più altri elementi XML all'interno di esso. Questo è grande per cose come Atom o RSS feed (che è stato il motivo originale ho progettato la biblioteca).

Ecco l'URL: http://home.avvanta.com/~steveha/xe.html

Sarei felice di rispondere alle domande se ne avete.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top