def parseGpx(gpxFile): u"""Get the latitude and longitude data of all track segments in a GPX file""" if gpxFile == u'/dev/stdin': gpxFile = sys.stdin # Get the XML information try: gpx = parseXml(gpxFile) except IOError as error: print(sys.stderr, u'Error while reading file: {}. Terminating.'.format(error)) sys.exit(1) except: print(sys.stderr, u'Error while parsing XML data:') print(sys.stderr, sys.exc_info()) print(sys.stderr, u'Terminating.') sys.exit(1) # Iterate over all tracks, track segments and points gpsData = [] for track in gpx.getElementsByTagName(u'trk'): for trackseg in track.getElementsByTagName(u'trkseg'): trackSegData = [] for point in trackseg.getElementsByTagName(u'trkpt'): trackSegData.append((float(point.attributes[u'lon'].value), float(point.attributes[u'lat'].value))) # Leave out empty segments if (trackSegData != []): gpsData.append(trackSegData) return gpsData
def _parseXbmcFavourites(self): favItems = None xbmcFavsFile = common.Paths.xbmcFavouritesFile if os.path.exists(xbmcFavsFile): doc = parseXml(xbmcFavsFile) xbmcFavs = doc.documentElement.getElementsByTagName('favourite') favItems = [] for node in xbmcFavs: favItem = XbmcFavouriteItem.fromXmlNode(node) favItems.append(favItem) return favItems
def readAndroidMetadata(self): """ Read Android-specific metadata from AndroidManifest.xml file. """ manifestFile = open(os.path.join(self.tempdir, 'AndroidManifest.xml'), 'r') manifest = parseXml(manifestFile) manifestFile.close() root = manifest.documentElement self.version = root.attributes["android:versionName"].value while self.version.count('.') < 2: self.version += '.0' self.version = '%s.%s' % (self.version, self.revision) usesSdk = manifest.getElementsByTagName('uses-sdk')[0] self.minSdkVersion = usesSdk.attributes["android:minSdkVersion"].value self.basename = os.path.basename(self.config.repository)
def readAndroidMetadata(self): """ Read Android-specific metadata from AndroidManifest.xml file. """ manifestFile = open(os.path.join(self.tempdir, 'AndroidManifest.xml'), 'r') manifest = parseXml(manifestFile) manifestFile.close() root = manifest.documentElement self.version = root.attributes['android:versionName'].value while self.version.count('.') < 2: self.version += '.0' self.version = '%s.%s' % (self.version, self.buildNum) usesSdk = manifest.getElementsByTagName('uses-sdk')[0] self.minSdkVersion = usesSdk.attributes['android:minSdkVersion'].value self.basename = os.path.basename(self.config.repository)
def modify_file(xmlfile_name, options): xmlfile = parseXml(xmlfile_name) td_xml = make_fragment(options.td_text) for is_table in xmlfile.childNodes: if is_table.nodeType == is_table.ELEMENT_NODE: if "table" == is_table.tagName: for is_ts in is_table.childNodes: if is_ts.nodeType == is_ts.ELEMENT_NODE: if is_ts.tagName == "thead": do_action(is_ts, None, options) elif is_ts.tagName == "tbody": for is_tr in is_ts.childNodes: if is_tr.nodeType == is_tr.ELEMENT_NODE: do_action(is_tr, td_xml, options) ofile = sys.stdout lint = False if options.output: ofile = file(options.output, "w") lint = True print >> ofile, xmlfile.toxml(encoding="utf-8") ofile.close() if lint: os.system("xmllint --xmlout --format %s -o %s"%(options.output, options.output))
# In UFO, capital characters have an underscore in their name: "A" -> "A_.glif" if letter[0].isupper(): if len(letter) == 1: letter = letter + "_" elif len(letter) == 2: letter = letter[0] + "_" + letter[1] + "_" else: letter = letter[0] + "_" + letter[1:] #letter = letter.lower() if letter[0:3] == "uni": continue #letter = "uni" + letter[3:].upper() + "_" glyph = parseXml("%s%s.glif" % (GLYPH_DIR, letter)) # Gets contours descriptions of the glyph contours = glyph.getElementsByTagName("contour") for contour in contours: try: # Checks type of first node of the countour type= contour.childNodes[1].attributes["type"].value if type == "move": # Should be ok already pass elif type == "line": # Changing type "line" to "move" contour.childNodes[1].attributes["type"].value = "move" elif type == "curve": # Putting curve point at the end of the contour