--- trunk/thuban/Extensions/wms/parser.py 2004/04/13 17:38:26 2172 +++ trunk/thuban/Extensions/wms/parser.py 2004/04/13 19:28:05 2173 @@ -49,6 +49,7 @@ # $Id$ import xml.dom.minidom +from xml.dom import Node from domutils import getElementsByName, getElementByName @@ -118,11 +119,25 @@ and foo.childNodes[0].data.lower() != 'none': self.access = foo.childNodes[0].data - # Extract output format information - foo = getElementsByName( - getElementByName(getElementByName(getElementByName( - root, 'Capability'), 'Request'), 'GetMap'), 'Format') - self.formats = map((lambda i: i.childNodes[0].data), foo) + foo = getElementByName(getElementByName( + root, 'Capability'), 'Request') + + # Need to distinguish between Map and GetMap for v1.0 and v1.1 + bar = getElementByName(foo, 'GetMap') + if bar: + # WMS 1.1 + foo = getElementsByName(bar, 'Format') + self.formats = map((lambda i: i.childNodes[0].data), foo) + else: + # WMS 1.0 + foo = getElementByName(getElementByName( + foo, 'Map'), 'Format') + for node in foo.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + try: + self.formats.append(node.nodeName) + except AttributeError: + self.formats = [node.nodeName] # Extract layer names self.layers = []