Based on what you've explained:
#Additional import
from collections import OrderedDict
channels = OrderedDict()
for elem in tv_elem.getchildren():
if elem.tag == 'channel':
channels[elem.attrib['id']] = self.load_channel(elem)
for channel_value in channels.items():
print channel_value.get_display_name()
NOTE: This will give you the same order as you read them from the XML, not alphabetical
EDIT : Since you're using Python 2.6, a small workaround:
channels = []
for elem in tv_elem.getchildren():
if elem.tag == 'channel':
channels.append( (elem.attrib['id'], self.load_channel(elem)) )
for channel_value in channels:
print channel_value[1].get_display_name()