def __init__(self, tsnode, parent): ''' Init from a GPX XML node element ''' self.parent = parent # Init props self.lat = None self.lon = None self.ele = None self.description = None self.time = None self.name = None if tsnode.attributes["lat"] != "" and tsnode.attributes["lon"] != "": self.lat = float(tsnode.attributes["lat"].value) self.lon = float(tsnode.attributes["lon"].value) for tpnode in tsnode.childNodes: if tpnode.nodeName == "ele": self.ele = float(tpnode.childNodes[0].nodeValue) elif tpnode.nodeName == "desc": self.description = tpnode.childNodes[0].nodeValue elif tpnode.nodeName == "time": self.time = parse_xml_date(tpnode.childNodes[0].nodeValue) elif tpnode.nodeName == "name": self.name = tpnode.childNodes[0].nodeValue
def fetch_metadata(node): metadata = {} for mnode in node.childNodes: if mnode.nodeName == "name": metadata['name'] = mnode.childNodes[0].nodeValue elif mnode.nodeName == "desc": try: metadata['description'] = mnode.childNodes[0].nodeValue except: metadata['description'] = "" #no description elif mnode.nodeName == "time": metadata['time'] = mnode.childNodes[0].nodeValue elif mnode.nodeName == "author": metadata['author'] = {} for anode in mnode.childNodes: if anode.nodeName == "name": metadata['author']['name'] = anode.childNodes[0].nodeValue elif anode.nodeName == "email": metadata['author']['email'] = anode.childNodes[0].nodeValue elif anode.nodeName == "link": metadata['author']['link'] = anode.childNodes[0].nodeValue elif mnode.nodeName == "copyright": metadata['copyright'] = {} if mnode.attributes["author"].value != "": metadata['copyright']['author'] = mnode.attributes[ "author"].value for cnode in mnode.childNodes: if cnode.nodeName == "year": metadata['copyright']['year'] = cnode.childNodes[ 0].nodeValue elif cnode.nodeName == "license": metadata['copyright']['license'] = cnode.childNodes[ 0].nodeValue elif mnode.nodeName == "link": metadata['link'] = {} if mnode.attributes["href"].value != "": metadata['link']['href'] = mnode.attributes["href"].value for lnode in mnode.childNodes: if lnode.nodeName == "text": metadata['link']['text'] = lnode.childNodes[0].nodeValue elif lnode.nodeName == "type": metadata['link']['type'] = lnode.childNodes[0].nodeValue elif mnode.nodeName == "time": metadata['time'] = parse_xml_date(mnode.childNodes[0].nodeValue) elif mnode.nodeName == "keywords": metadata['keywords'] = mnode.childNodes[0].nodeValue return metadata
def fetch_metadata(node): metadata = {} for mnode in node.childNodes: if mnode.nodeName == "name": metadata['name'] = mnode.childNodes[0].nodeValue elif mnode.nodeName == "desc": try: metadata['description'] = mnode.childNodes[0].nodeValue except: metadata['description'] = "" #no description elif mnode.nodeName == "time": metadata['time'] = mnode.childNodes[0].nodeValue elif mnode.nodeName == "author": metadata['author'] = {} for anode in mnode.childNodes: if anode.nodeName == "name": metadata['author']['name'] = anode.childNodes[0].nodeValue elif anode.nodeName == "email": metadata['author']['email'] = anode.childNodes[0].nodeValue elif anode.nodeName == "link": metadata['author']['link'] = anode.childNodes[0].nodeValue elif mnode.nodeName == "copyright": metadata['copyright'] = {} if mnode.attributes["author"].value != "": metadata['copyright']['author'] = mnode.attributes["author"].value for cnode in mnode.childNodes: if cnode.nodeName == "year": metadata['copyright']['year'] = cnode.childNodes[0].nodeValue elif cnode.nodeName == "license": metadata['copyright']['license'] = cnode.childNodes[0].nodeValue elif mnode.nodeName == "link": metadata['link'] = {} if mnode.attributes["href"].value != "": metadata['link']['href'] = mnode.attributes["href"].value for lnode in mnode.childNodes: if lnode.nodeName == "text": metadata['link']['text'] = lnode.childNodes[0].nodeValue elif lnode.nodeName == "type": metadata['link']['type'] = lnode.childNodes[0].nodeValue elif mnode.nodeName == "time": metadata['time'] = parse_xml_date(mnode.childNodes[0].nodeValue) elif mnode.nodeName == "keywords": metadata['keywords'] = mnode.childNodes[0].nodeValue return metadata
def fetch_metadata(node): metadata = {} for mnode in node.getchildren(): if match_node(mnode, "name"): metadata["name"] = mnode.text elif match_node(mnode, "desc"): try: metadata["description"] = mnode.text except: metadata["description"] = "" # no description elif match_node(mnode, "time"): metadata["time"] = mnode.tag elif match_node(mnode, "author"): metadata["author"] = {} for anode in mnode.getchildren(): if match_node(anode, "name"): metadata["author"]["name"] = anode.text elif match_node(anode, "email"): metadata["author"]["email"] = anode.text elif match_node(anode, "link"): metadata["author"]["link"] = anode.text elif match_node(mnode, "copyright"): metadata["copyright"] = {} if mnode.get("author"): metadata["copyright"]["author"] = mnode.get("author") for cnode in mnode.getchildren(): if match_node(cnode, "year"): metadata["copyright"]["year"] = cnode.text elif match_node(cnode, "license"): metadata["copyright"]["license"] = cnode.text elif match_node(mnode, "link"): metadata["link"] = {} if mnode.get("href"): metadata["link"]["href"] = mnode.get("href") for lnode in mnode.getchildren(): if match_node(lnode, "text"): metadata["link"]["text"] = lnode.text elif match_node(lnode, "type"): metadata["link"]["type"] = lnode.text elif match_node(mnode, "time"): metadata["time"] = parse_xml_date(mnode.text) elif match_node(mnode, "keywords"): metadata["keywords"] = mnode.text return metadata
def fetch_track_point(tsnode): point = {} if tsnode.attributes["lat"] != "" and tsnode.attributes["lon"] != "": point['lat'] = float(tsnode.attributes["lat"].value) point['lon'] = float(tsnode.attributes["lon"].value) for tpnode in tsnode.childNodes: if tpnode.nodeName == "ele": point['ele'] = float(tpnode.childNodes[0].nodeValue) elif tpnode.nodeName == "desc": point['description'] = tpnode.childNodes[0].nodeValue elif tpnode.nodeName == "time": point['time'] = parse_xml_date(tpnode.childNodes[0].nodeValue) elif tpnode.nodeName == "name": point['name'] = tpnode.childNodes[0].nodeValue return point
def fetch_track_point(tsnode): point = {} if tsnode.get("lat") and tsnode.get("lon"): point["lat"] = float(tsnode.get("lat")) point["lon"] = float(tsnode.get("lon")) for tpnode in tsnode.getchildren(): if match_node(tpnode, "ele"): point["ele"] = float(tpnode.text) elif match_node(tpnode, "desc"): point["description"] = tpnode.text elif match_node(tpnode, "time"): point["time"] = parse_xml_date(tpnode.text) elif match_node(tpnode, "name"): point["name"] = tpnode.text return point
def fetch_track_point(tsnode): point = {} if tsnode.attributes["lat"] != "" and tsnode.attributes["lon"] != "": point['lat'] = float(tsnode.attributes["lat"].value.replace(",", ".")) point['lon'] = float(tsnode.attributes["lon"].value.replace(",", ".")) for tpnode in tsnode.childNodes: if tpnode.nodeName == "ele": point['ele'] = float(tpnode.childNodes[0].nodeValue.replace( ",", ".")) elif tpnode.nodeName == "desc": point['description'] = tpnode.childNodes[0].nodeValue elif tpnode.nodeName == "time": point['time'] = parse_xml_date(tpnode.childNodes[0].nodeValue) elif tpnode.nodeName == "name": point['name'] = tpnode.childNodes[0].nodeValue return point
def _parseMetadata(self, node): ''' Parses metadata from an XML node ans stores it to object ''' for mnode in node.childNodes: if mnode.nodeName == "name": self.name = mnode.childNodes[0].nodeValue elif mnode.nodeName == "desc": try: self.description = mnode.childNodes[0].nodeValue except Exception as e: print 'WARNING: Exception parsing metadata description:', e elif mnode.nodeName == "author": self.author = {} for anode in mnode.childNodes: if anode.nodeName == "name": if len(anode.childNodes): self.author['name'] = anode.childNodes[0].nodeValue else: self.author['name'] = anode.nodeValue elif anode.nodeName == "email": if len(anode.childNodes): self.author['email'] = anode.childNodes[0].nodeValue elif anode.hasAttributes(): try: anode.attributes['id'] anode.attributes['domain'] except KeyError: self.author['email'] = anode.nodeValue else: self.author['email'] = anode.attributes['id'].value + '@' + anode.attributes['domain'].value else: self.author['email'] = anode.nodeValue elif anode.nodeName == "link": self.author['link'] = anode.childNodes[0].nodeValue elif mnode.nodeName == "copyright": self.copyright = {} if mnode.attributes["author"].value != "": self.copyright['author'] = mnode.attributes["author"].value for cnode in mnode.childNodes: if cnode.nodeName == "year": self.copyright['year'] = cnode.childNodes[0].nodeValue elif cnode.nodeName == "license": self.copyright['license'] = cnode.childNodes[0].nodeValue elif mnode.nodeName == "link": self.link = {} if mnode.attributes["href"].value != "": self.link['href'] = mnode.attributes["href"].value for lnode in mnode.childNodes: if lnode.nodeName == "text": self.link['text'] = lnode.childNodes[0].nodeValue elif lnode.nodeName == "type": self.link['type'] = lnode.childNodes[0].nodeValue elif mnode.nodeName == "time": self.time = parse_xml_date(mnode.childNodes[0].nodeValue) elif mnode.nodeName == "keywords": self.keywords = mnode.childNodes[0].nodeValue