示例#1
0
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 
示例#3
0
 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
示例#4
0
  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)
示例#5
0
    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