Exemple #1
0
    def parse(self):
        """
        Extracts media file data into model objects for later saving
        """
        try:
            tree = ElementTree.fromstring(self.manifest_file.read())
        except ElementTree.ParseError:
            raise ParseError('Error parsing XML')

        for media_file in tree.findall('file'):
            try:
                mfo = MediaFile()
                mfo.title = media_file.find('title').text
                mfo.version = media_file.find('version').text
                mfo.release_date = datetime.strptime(media_file.find('releasedate').text, '%m/%d/%Y').date()
                mfo.content_type = media_file.find('contenttype').text
                mfo.language = media_file.find('language').text
                mfo.barcode = media_file.find('barcode').text
                mfo.md5_checksum = media_file.find('md5').text
                mfo.filename = media_file.find('filename').text

                self.media_file_objs.append(mfo)
            except AttributeError:
                raise ParseError('Missing required XML attribute')