Satura rādītājs
Šīs apmācības daļas pirmajā daļā mēs esam noteikuši visus parametrus, kas mums nepieciešami, lai varētu īstenot projektu, ko mēs norādījām tīmekļa vietnes veidošanas apmācībā, sākot no XML faila.Šajā otrajā daļā mēs īstenosim visu plānoto PythonTā kā projekta dažādie aspekti ir sarežģīti, iespējams, ka mūsu pirmajā ieviešanā viss nebūs ideāli, tomēr tas ir labi, jo tas dod mums iespēju izveidot funkcionējošu prototipu un uzlabot tā sastāvdaļas.
Pārvaldīt saturu
Mūsu pirmā darbība būs mūsu satura pārvaldība XML fails, šim nolūkam mēs izmantosim SAX ka iepriekšējā apmācības daļā mēs to jau bijām instalējuši vai pārbaudījuši.
Lai to panāktu, mēs vispirms izveidojam konteineru, kuram mēs nodosim mūsu izveidoto XML failu.
Apskatīsim kodu, kas mums jāievieto:
no xml.sax.handler importējiet ContentHandler no xml.sax importēšanas parsēšanas klases TestHandler (ContentHandler): iziet parse ('website.xml', TestHandler ())
Izpildot to, mums nevajadzētu būt kļūdām, tas nozīmē, ka mūsu XML jau ir ielādēts un ka parsētājs darīja savu darbu, ja mēs redzam kādu kļūdu vai izņēmumu, mums ir jādokumentē, lai noskaidrotu iemeslu, mēs varam paļauties uz internetu un tā plašo dokumentāciju Python.
Tagad mēs pievienosim metodi, kas mums parāda, ka tas, ko esam secinājuši, ir patiess mūsu klasē TestHandler mēs iekļausim šādu kodu:
def startElement (self, name, attrs): drukas nosaukums, attrs.keys ()
Atkal palaižot mūsu programmu, mēs redzēsim kaut ko līdzīgu tam, ko parāda šāds attēls:
Mūsu klasei vajadzētu būt šādai:
no xml.sax.handler importēt ContentHandler no xml.sax importēt parsēšanas klasi HeadlineHandler (ContentHandler): in_headline = False def __init __ (self, headlines): ContentHandler .__ init __ (self) self.headlines = headlines self.data = [ ] def startElement (self, name, attrs): if name == 'h1': self.in_headline = True def endElement (self, name): if name == 'h1': text = ".join (self.data ) self. data = [] self.headlines.append (text) self.in_headline = Viltus def rakstzīmes (self, string): if self.in_headline: self.data.append (string) headlines = [] parsēt ('vietne. xml ', HeadlineHandler (virsraksti)) print' ŠādiSveiki. Mani sauc Gumbija kungs, un šī ir mana mājas lapa. Šeit ir dažas manas intereses:
- Kliegšana
- Guļot
- Ēšana
Palaižot to pārlūkprogrammā, mēs redzēsim, ka tas ir pareizi interpretēts, un rezultāts būs līdzīgs šim: