Exemplo n.º 1
0
 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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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
Exemplo n.º 7
0
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
Exemplo n.º 8
0
 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