Python + XML bölüm 2

İçindekiler
Bu öğretici bölümün ilk bölümünde, bir XML dosyasından başlayarak bir web sitesi oluşturma öğreticisinde belirttiğimiz projeyi gerçekleştirebilmek için sahip olmamız gereken tüm parametreleri belirledik.
Bu ikinci bölümde, planladığımız her şeyi kullanarak gerçekleştireceğiz. pitonProjenin farklı yönlerinin karmaşıklığı nedeniyle, ilk uygulamamızda her şeyin mükemmel olmaması mümkündür, ancak bu bize çalışan bir prototip oluşturma ve bileşenlerini geliştirme fırsatı verdiği için iyidir.
İçeriği Yönet
İlk eylemimiz, içeriğimizi yönetmek olacaktır. XML dosyası, bunun için kullanacağız SAX eğitimin önceki bölümünde zaten kurduğumuz veya sahip olduğumuzu doğruladığımız.
Bunun için öncelikle oluşturduğumuz XML dosyamızı ileteceğimiz bir kapsayıcı oluşturuyoruz.
Yerleştirmemiz gereken kodu görelim:
 xml.sax.handler'dan ContentHandler'ı xml.sax'tan içe aktar ayrıştırma sınıfını içe aktar TestHandler (ContentHandler): ayrıştırmayı geç ('website.xml', TestHandler ()) 

Bunu yürütürken herhangi bir hata almamalıyız, bu, XML'imizin zaten yüklenmiş olduğu ve ayrıştırıcı işini yaptı, herhangi bir hata veya istisna görürsek, sebebinin ne olduğunu görmek için kendimizi belgelemeliyiz, internete ve sahip olduğu kapsamlı belgelere güvenebiliriz. piton.
Şimdi çıkarımımızın doğru olduğunu bize gösteren bir metodu sınıfımıza ekleyeceğiz. Testİşleyicisi aşağıdaki kodu dahil edeceğiz:
 def startElement (self, name, attrs): print name, attrs.keys () 

Programımızı tekrar çalıştırdığımızda aşağıdaki görüntünün bize gösterdiği gibi bir şey göreceğiz:

Şimdi bir sonraki adım, her öğenin içerdiği bilgileri elde etmektir, bunun için sınıfın yöntemlerini dahil edeceğiz. İçerik İşleyicisi SAX ve XML dosyamızda bulunan H1 öğelerini elde edeceğiz.
Sınıfımız aşağıdaki gibi olmalıdır.
 xml.sax.handler'dan ContentHandler'ı xml.sax'tan içe aktar ayrıştırma sınıfını içe aktar HeadlineHandler (ContentHandler): in_headline = False def __init __ (self, başlıklar): ContentHandler .__ init __ (self) self.headlines = başlıklar self.data = [ ] def startElement (self, name, attrs): if name == 'h1': self.in_headline = True def endElement (self, name): if name == 'h1': metin = '' .join (self.data) ) self.data = [] self.headlines.append (metin) self.in_headline = Yanlış tanımlama karakterleri (self, string): if self.in_headline: self.data.append (dize) başlıklar = [] parse ('website. xml', HeadlineHandler (başlıklar)) print 'Aşağıdakileri

Merhaba. Benim adım Bay Gumby ve bu benim ana sayfam. İşte ilgi alanlarımdan bazıları:

  • bağırmak
  • Uyuyor
  • Yemek yiyor

Bir tarayıcıda çalıştırırsak, doğru yorumlandığını görürüz ve aşağıdakine benzer bir sonuç elde ederiz:

Bunu başararak ilk yinelememizi ve bu öğreticiyi bitirdik, edinilen tüm bilgileri cilalamak ve o ilk programı çok daha fazla geliştirmek için projeyi genişletmek herkese kalmış.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave