2013-08-19 7 views
7

cerco di analizzare il file XML in Python utilizzando lxml come questo:Come non caricare i commenti durante l'analisi XML in lxml

objectify.parse(xmlPath, parserWithSchema) 

ma file XML possono contiene commenti in posti strani:

<root> 
    <text>Sam<!--comment-->ple text</text> 
    <!--comment--> 
    <float>1.2<!--comment-->3456</float> 
</root> 

È un modo per non caricare o eliminare commenti prima dell'analisi?

risposta

8

Imposta remove_comments=True sul parser (documentation):

from lxml import etree, objectify 

parser = etree.XMLParser(remove_comments=True) 
tree = objectify.parse(xmlPath, parser=parser) 

Oppure, utilizzando il metodo makeparser():

parser = objectify.makeparser(remove_comments=True) 
tree = objectify.parse(xmlPath, parser=parser) 

Speranza che aiuta.

+1

Questo non ha funzionato per me. Il modo corretto era usare 'parser = objectify.makeparser (remove_comments = True)' come indicato qui http://stackoverflow.com/a/7513498/551045 – RedX

+0

@RedX grazie, ho migliorato la risposta di conseguenza. – alecxe