1 from MPHelp import HelpPage
2 from xml.etree.cElementTree import parse as cet_parse
4 from xml.etree.cElementTree import ParseError
5 except ImportError, ie:
6 ParseError = SyntaxError
8 class XMLHelpPage(HelpPage):
9 def __init__(self, node):
10 # calling HelpPage.__init__ is not required
14 node = self.node.find('text')
16 return _(node.get('value', ''))
20 return _(self.node.get('title', ''))
23 def __init__(self, filename):
24 # this may raise an exception, it is up to the caller to handle that
25 self.__dom = cet_parse(filename).getroot()
27 def __getitem__(self, index):
30 caption = self.__dom.get('caption', '')
31 return lambda: _(caption)
33 return lambda: [XMLHelpPage(x) for x in self.__dom.findall('page')]
35 return self.__dom.get('skin', "") # additional skin name
36 raise IndexError('no more indices')
37 raise RuntimeError('no valid dom')
39 __all__ = ['XMLHelpReader']