def main()

in android_sdk/AndroidExtraXMLParser.py [0:0]


    def main(self):
        if "http" in self.env["xml_file"]:
            try:
                tree = ET.ElementTree(file=urllib2.urlopen(self.env["xml_file"]))
            except urllib2.URLError as err:
                raise ProcessorError(err)
        else:
            try:
                tree = ET.ElementTree(file=self.env["xml_file"])
            except IOError as err:
                raise ProcessorError(err)
        root = tree.getroot()
        schema = root.tag.split("}")[0] + "}"
        # Look for everything else
        match = root.findall("%s%s" % (schema, "extra"))
        # Now look through the records
        for record in match:
            result_dict = get_element_children_dict(record, schema)
            # We match records by name-display field
            if record.find("%sname-display" % schema).text != self.env["name"]:
                continue
            for key, outputVar in self.env["tags"].iteritems():
                print("Key: %s" % key)
                if key == "license":
                    # Look for license - it's a special case
                    match = root.findall("%s%s" % (schema, "license"))
                    self.env[self.env["tags"]["license"]] = (
                        match[-1].text.encode("ascii", "ignore").encode("string-escape")
                    )
                    self.output("Found license.")
                    continue
                if key == "uses-license":
                    self.env[self.env["tags"]["uses-license"]] = record.find(
                        "%s%s" % (schema, "uses-license")
                    ).attrib["ref"]
                    self.output(
                        "Found license-ref: %s"
                        % self.env[self.env["tags"]["uses-license"]]
                    )
                    continue
                # Look for revision - third special case
                if key == "revision":
                    major = find_value_in_dict(result_dict, "revision")[0][0].get(
                        "major", ""
                    )
                    minor = find_value_in_dict(result_dict, "revision")[0][1].get(
                        "minor", ""
                    )
                    micro = find_value_in_dict(result_dict, "revision")[0][2]["micro"]
                    self.env[self.env["tags"]["revision"]] = "%s.%s.%s" % (
                        major,
                        minor,
                        micro,
                    )
                    self.output("Revision: %s" % self.env[self.env["tags"]["revision"]])
                    continue
                value = find_value_in_dict(result_dict, key)
                print("Found value: %s" % value)