2013-08-19 8 views
7

Ich versuche, XML-Datei in Python zu analysieren:Wie die Kommentare nicht geladen werden während XML in lxml Parsen

objectify.parse(xmlPath, parserWithSchema) 

aber XML-Datei kann enthält Kommentare in fremden Orten:

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

Es ist eine Möglichkeit, Kommentare vor dem Parsen nicht zu laden oder zu löschen.

Antwort

8

Set remove_comments=True auf dem Parser (documentation):

from lxml import etree, objectify 

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

Oder mit der makeparser() Methode:

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

Hoffnung, das hilft.

+1

Das hat nicht für mich funktioniert. Der korrekte Weg war 'parser = objectify.makeparser (remove_comments = True)' 'wie hier angegeben http://stackoverflow.com/a/7513498/551045 – RedX

+0

@RedX danke, ich habe die Antwort entsprechend verbessert. – alecxe