2009-07-24 12 views
8
import xml.parsers.expat 

def start_element(name, attrs): 
    print('Start element:', name, attrs) 

def end_element(name): 
    print('End element:', name) 

def character_data(data): 
    print('Character data: %s' % data) 

parser = xml.parsers.expat.ParserCreate() 
parser.StartElementHandler = start_element 
parser.EndElementHandler = end_element 
parser.CharacterDataHandler = character_data 
parser.ParseFile(open('sample.xml')) 

Yukarıdaki çalışmalar python 2.6'da değil, python 3.0'da değil - python 3'te çalışacak herhangi bir fikir çok takdir edilmektedir. Ben ParseFile satırda olsun hata ikili olarak bu dosyayı açmaya gerek TypeError: read() did not return a bytes object (type=str)Python'da ayrıştırma 3

cevap

12

geçerli: Python 2.7 I altında Python 3 ile xmltodict modülünü kullanmaya çalışırken ben bu sorunu koştu

parser.ParseFile(open('sample.xml', 'rb')) 
+0

tarafından önerilen ile aynıdır Teşekkür ederiz! - Bu düzeltildi. – OpenSource

3

sorun yoktu ama Python 3'ün altında aynı hatayı aldım. Çözüm, @SilentGhost:

+1

çok iyi bulmak. xmltodict ile aynı soruna girdi. tnx – k3it