コード例 #1
0
ファイル: html.py プロジェクト: Roger/dxhttp
                text = str(text).decode("utf-8")
            textnode = self.documentObject.createTextNode(text)
            self.appendChild(textnode)
        return self

    def getElementById(self, id):
        return self.filter(id=id)[0]

    def filter(self, tag="*", **attrs):
        if 'class_' in attrs:
            attrs['class'] = attrs['class_']
            del attrs['class_']
        def matches(x):
            for key, value in attrs.iteritems():
                if x.getAttribute(key) == value:
                    if key == "title":
                        x.setAttribute(key, "")
                    return True
            return False

        return [x for x in
            self.getElementsByTagName(tag)
            if matches(x)]

    def template(self, filename):
        '''Parses "filename" and appends it contents to self'''
        filename = os.path.join(TPL_ROOT, filename)
        self.appendChild(xml.dom.minidom.parse(filename).documentElement)

extend(xml.dom.minidom.Element, Element)
コード例 #2
0
ファイル: html_etree.py プロジェクト: dequis/dxhttp
        return self.filter(id=id)[0]

    @fix_attrs_names
    def filter(self, tag='*', attrs={}):
        def matches(element):
            for key, value in attrs.iteritems():
                if element.get(key) == value:
                    return True
            return False
        
        if not attrs:
            matches = lambda x: True

        return [x for x in self.getiterator(tag) if matches(x)]

    def template(self, filename, vars={}):
        '''Parses "filename" and appends it contents to self'''
        path = os.path.join(TPL_ROOT, filename) 
        if os.path.exists(path):
            f = Replacer(path, vars)
            self.append(XML_safe(f.read(), path))
            return True
        else:
            return False

    def html(self, html):
        '''Appends html. Must be wrapped in some tag'''
        self.append(XML_safe(html))

extend(ET._ElementInterface, Element)