コード例 #1
0
    def __init__(self, raw):
        self.axml = AXMLParser(raw)
        self.xmlns = False

        self.buff = ""

        while 1:
            _type = self.axml.next()

            if _type == START_DOCUMENT:
                self.buff += "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
            elif _type == START_TAG:
                self.buff += "<%s%s\n" % (self.__get_prefix(self.axml.get_prefix()), self.axml.get_name())

                # FIXME: use namespace
                if self.xmlns == False:
                    self.buff += "xmlns:%s=\"%s\"\n" % (self.axml.get_namespace_prefix(0),
                                                        self.axml.get_namespace_uri(0))
                    self.xmlns = True

                for i in range(0, self.axml.get_attribute_count()):
                    self.buff += "%s%s=\"%s\"\n" % (self.__get_prefix(self.axml.get_attribute_prefix(i)),
                                                    self.axml.get_attribute_name(i), self.__get_attribute_value(i))

                self.buff += ">\n"
            elif _type == END_TAG:
                self.buff += "</%s%s>\n" % (self.__get_prefix(self.axml.get_prefix()), self.axml.get_name())
            elif _type == TEXT:
                self.buff += "%s\n" % self.axml.get_text()
            elif _type == END_DOCUMENT:
                break