Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #zadanie podpunkt 1 - sax
- import xml.sax
- class Student:
- imie = ""
- nazwisko = ""
- class Adres:
- ulica = ""
- numer = 0
- miejscowosc = ""
- studenci = []
- adresy = []
- class ExampleFileHandler(xml.sax.ContentHandler):
- def __init__(self):
- self.inElement = False
- self.inPotomek = False
- self.text = ""
- def startElement(self, name, attrs):
- if name == "student":
- self.inElement = True
- for (k,v) in attrs.items():
- print(v.strip())
- if name == "adres":
- self.inPotomek = True
- def characters(self, ch):
- if self.inElement and self.inPotomek:
- print("characters",ch.strip())
- self.text += ch
- def endElement(self,name):
- if name == 'student':
- print (self.text.strip())
- self.inElement = False
- self.text = ""
- if name == 'adres':
- self.inPotomek = False
- parser = xml.sax.make_parser()
- parser.setContentHandler(ExampleFileHandler())
- parser.parse(open("osoby.xml", "r"))
- for student in studenci:
- print(student.imie, student.nazwisko)
- for adres in adresy:
- print(adres.ulica, adres.numer, adres.miejscowosc)
- #zadanie podpunkt 2 minidom
- from xml.dom import minidom
- doc = minidom.parse('osoby.xml')
- #node = doc.documentElement
- lstudent = doc.getElementsByTagName('student')
- class Student:
- imie = ""
- nazwisko = ""
- class Adres:
- ulica = ""
- numer = 0
- miejscowosc = ""
- studenci = []
- adresy = []
- for elem in lstudent:
- ladres = elem.getElementsByTagName('adres')
- x = Student()
- x.imie = elem.attributes['imie'].value
- x.nazwisko = elem.attributes['nazwisko'].value
- studenci.append(x)
- for elem in ladres:
- x = Adres()
- x.ulica = elem.getElementsByTagName("ulica")[0].childNodes[0].data.strip()
- x.numer = elem.getElementsByTagName("numer")[0].childNodes[0].data.strip()
- x.miejscowosc = elem.getElementsByTagName("miejscowosc")[0].childNodes[0].data.strip()
- adresy.append(x)
- for student in studenci:
- print(student.imie, student.nazwisko)
- for adres in adresy:
- print(adres.ulica, adres.numer, adres.miejscowosc)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement