# File lib/flickr/base.rb, line 280
        def self.from_xml(xml,flickr=nil)
                els = xml.elements
                att = xml.root.attributes

                nsid = cond_attr(att,'nsid')
                username = cond_text(els,'/person/username')

                p = flickr.person_cache_lookup(nsid) if flickr
                p ||= Flickr::Person.new(flickr,nsid,username)
                
                p.username = username
                p.isadmin = cond_attr(att,'isadmin') &&
                        cond_attr(att,'isadmin') == '1'
                p.ispro = cond_attr(att,'ispro') &&
                        cond_attr(att,'ispro') == '1'
                p.iconserver = cond_attr(att,'iconserver') &&
                        cond_attr(att,'iconserver').to_i
                p.realname = cond_text(els,'/person/realname')
                p.mbox_sha1sum = cond_text(els,'/person/mbox_sha1sum')
                p.location = cond_text(els,'/person/location')
                p.photosurl = cond_text(els,'/person/photosurl')
                p.profileurl = cond_text(els,'/person/profileurl')
                tstr = cond_text(els,'/person/photos/firstdate')
                p.photos_firstdate = Time.at(tstr.to_i) if tstr
                tstr = cond_text(els, '/person/photos/firstdatetaken')
                p.photos_firstdatetaken = Time.gm(*ParseDate.parsedate(tstr)) if
                        tstr
                p.photos_count = cond_text(els,'/person/photos/count')
                p.photos_count = p.photos_count if p.photos_count

                p.info_fetched = true if p.photos_count

                if els['/user/bandwidth']
                        att = els['/user/bandwidth'].attributes
                        p.bandwidth_max = cond_attr(att,'max') &&
                                cond_attr(att,'max').to_i
                        p.bandwidth_used = cond_attr(att,'used') &&
                                cond_attr(att,'used').to_i
                end
                if els['/user/filesize']
                        att = els['/user/filesize'].attributes
                        p.filesize_max = cond_attr(att,'max') &&
                                cond_attr(att,'max').to_i
                end

                p.upload_fetched = true if p.bandwidth_max

                flickr.person_cache_store(p) if flickr
                return p
        end