private function _decode($text)
    {
        $marc = new $this->record_class($this);

        // Store leader
        $marc->setLeader($text->leader);

        // go through all the control fields
        foreach ($text->controlfield as $controlfield) {
            $controlfieldattributes = $controlfield->attributes();
            $marc->appendField(new File_MARC_Control_Field((string)$controlfieldattributes['tag'], $controlfield));
        }

        // go through all the data fields
        foreach ($text->datafield as $datafield) {
            $datafieldattributes = $datafield->attributes();
            $subfield_data = array();
            foreach ($datafield->subfield as $subfield) {
                $subfieldattributes = $subfield->attributes();
                $subfield_data[] = new File_MARC_Subfield((string)$subfieldattributes['code'], $subfield);
            }
            
            // If the data is invalid, let's just ignore the one field
            try {
                $new_field = new File_MARC_Data_Field((string)$datafieldattributes['tag'], $subfield_data, $datafieldattributes['ind1'], $datafieldattributes['ind2']);
                $marc->appendField($new_field);
            } catch (Exception $e) {
                $marc->addWarning($e->getMessage());
            }
        }

        return $marc;
    }
private function _decode($text)
    {
        $marc = new $this->record_class($this);

        // Store leader
        $marc->setLeader($text->leader);

        // go through all the control fields
        foreach ($text->controlfield as $controlfield) {
            $controlfieldattributes = $controlfield->attributes();
            $marc->appendField(new File_MARC_Control_Field((string)$controlfieldattributes['tag'], $controlfield));
        }

        // go through all the data fields
        foreach ($text->datafield as $datafield) {
            $datafieldattributes = $datafield->attributes();
            $subfield_data = array();
            foreach ($datafield->subfield as $subfield) {
                $subfieldattributes = $subfield->attributes();
                $subfield_data[] = new File_MARC_Subfield((string)$subfieldattributes['code'], $subfield);
            }
            
            // If the data is invalid, let's just ignore the one field
            try {
                $new_field = new File_MARC_Data_Field((string)$datafieldattributes['tag'], $subfield_data, $datafieldattributes['ind1'], $datafieldattributes['ind2']);
                $marc->appendField($new_field);
            } catch (Exception $e) {
                $marc->addWarning($e->getMessage());
            }
        }

        return $marc;
    }
private function _decode ( $ text ) { $ marc = new $ this -> record_class ( $ this ) ; // Store leader $ marc -> setLeader ( $ text -> leader ) ; // go through all the control fields foreach ( $ text -> controlfield as $ controlfield ) { $ controlfieldattributes = $ controlfield -> attributes ( ) ; $ marc -> appendField ( new File_MARC_Control_Field ( ( string ) $ controlfieldattributes [ 'tag' ] , $ controlfield ) ) ; } // go through all the data fields foreach ( $ text -> datafield as $ datafield ) { $ datafieldattributes = $ datafield -> attributes ( ) ; $ subfield_data = array ( ) ; foreach ( $ datafield -> subfield as $ subfield ) { $ subfieldattributes = $ subfield -> attributes ( ) ; $ subfield_data [ ] = new File_MARC_Subfield ( ( string ) $ subfieldattributes [ 'code' ] , $ subfield ) ; } // If the data is invalid, let's just ignore the one field try { $ new_field = new File_MARC_Data_Field ( ( string ) $ datafieldattributes [ 'tag' ] , $ subfield_data , $ datafieldattributes [ 'ind1' ] , $ datafieldattributes [ 'ind2' ] ) ; $ marc -> appendField ( $ new_field ) ; } catch ( Exception $ e ) { $ marc -> addWarning ( $ e -> getMessage ( ) ) ; } } return $ marc ; }
Decode a given MARCXML record

@param string $text MARCXML record element

@return File_MARC_Record Decoded File_MARC_Record object
Decode a given MARCXML record