def test_1(self): dtd = ('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ' '"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" ' '[\n' '<!ENTITY entity_test "TEST">\n' ']>') data = '<?xml version="1.0"?>\n'+dtd parser = XMLParser(data) name, doctype = list(parser)[2][1] self.assertEqual(get_doctype(name, doctype), dtd)
def get_start_tag(value): tag_uri, tag_name, attributes = value qname = get_qname(tag_uri, tag_name) s = '<%s' % qname # Output the attributes for attr_uri, attr_name in attributes: value = attributes[(attr_uri, attr_name)] qname = get_attribute_qname(attr_uri, attr_name) value = XMLAttribute.encode(value) s += ' %s="%s"' % (qname, value) return s + '>' stream_to_html_map = ( lambda x: '', # XML_DECL lambda x: get_doctype(x[0], x[1]), # DOCUMENT_TYPE get_start_tag, # START_ELEMENT lambda x: get_end_tag(x[0], x[1]), # END_ELEMENT XMLContent.encode, # TEXT lambda x: '<!--%s-->' % x, # COMMENT lambda x: '', # PI lambda x: x) # CDATA def stream_to_html(stream, encoding='UTF-8', map=stream_to_html_map): return stream_to_str(stream, encoding=encoding, map=map) def set_content_type(stream, content_type): key1 = (None, 'http-equiv') key2 = (None, 'content')