示例#1
0
 def test_set_decl_system(self):
     doc = etree.Element('test').getroottree()
     doc.docinfo.system_url = 'baz'
     self.assertEqual(doc.docinfo.doctype,
                      '<!DOCTYPE test SYSTEM "baz">')
     self.assertEqual(etree.tostring(doc),
                      _bytes('<!DOCTYPE test SYSTEM "baz">\n<test/>'))
示例#2
0
 def test_set_decl_public(self):
     doc = etree.Element('test').getroottree()
     doc.docinfo.public_id = 'bar'
     doc.docinfo.system_url = 'baz'
     self.assertEqual(doc.docinfo.doctype,
                      '<!DOCTYPE test PUBLIC "bar" "baz">')
     self.assertEqual(etree.tostring(doc),
                      _bytes('<!DOCTYPE test PUBLIC "bar" "baz">\n<test/>'))
示例#3
0
文件: test_dtd.py 项目: zym1010/lxml
 def test_ietf_decl(self):
     html_data = ('<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">\n'
                  '<html></html>')
     root = etree.HTML(html_data)
     doc = root.getroottree()
     self.assertEqual(doc.docinfo.doctype,
                      '<!DOCTYPE html PUBLIC "-//IETF//DTD HTML//EN">')
     self.assertEqual(etree.tostring(doc, method='html'), _bytes(html_data))
示例#4
0
文件: test_dtd.py 项目: zym1010/lxml
 def test_empty_decl(self):
     doc = etree.Element('test').getroottree()
     doc.docinfo.public_id = None
     self.assertEqual(doc.docinfo.doctype, '<!DOCTYPE test>')
     self.assertTrue(doc.docinfo.public_id is None)
     self.assertTrue(doc.docinfo.system_url is None)
     self.assertEqual(etree.tostring(doc),
                      _bytes('<!DOCTYPE test>\n<test/>'))
示例#5
0
文件: test_dtd.py 项目: zym1010/lxml
 def test_set_decl_public(self):
     doc = etree.Element('test').getroottree()
     doc.docinfo.public_id = 'bar'
     doc.docinfo.system_url = 'baz'
     self.assertEqual(doc.docinfo.doctype,
                      '<!DOCTYPE test PUBLIC "bar" "baz">')
     self.assertEqual(etree.tostring(doc),
                      _bytes('<!DOCTYPE test PUBLIC "bar" "baz">\n<test/>'))
示例#6
0
 def test_empty_decl(self):
     doc = etree.Element('test').getroottree()
     doc.docinfo.public_id = None
     self.assertEqual(doc.docinfo.doctype,
                      '<!DOCTYPE test>')
     self.assertTrue(doc.docinfo.public_id is None)
     self.assertTrue(doc.docinfo.system_url is None)
     self.assertEqual(etree.tostring(doc),
                      _bytes('<!DOCTYPE test>\n<test/>'))
示例#7
0
 def test_ietf_decl(self):
     html_data = (
         '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">\n'
         '<html></html>')
     root = etree.HTML(html_data)
     doc = root.getroottree()
     self.assertEqual(doc.docinfo.doctype,
                      '<!DOCTYPE html PUBLIC "-//IETF//DTD HTML//EN">')
     self.assertEqual(etree.tostring(doc, method='html'), _bytes(html_data))
示例#8
0
 def test_html_decl(self):
     # Slightly different to one above: when we create an html element,
     # we do not start with a blank slate.
     doc = html.Element('html').getroottree()
     doc.docinfo.public_id = 'bar'
     doc.docinfo.system_url = 'baz'
     self.assertEqual(doc.docinfo.doctype,
                      '<!DOCTYPE html PUBLIC "bar" "baz">')
     self.assertEqual(etree.tostring(doc),
                      _bytes('<!DOCTYPE html PUBLIC "bar" "baz">\n<html/>'))
示例#9
0
 def test_declaration_escape_quote_pid(self):
     # Standard allows quotes in systemliteral, but in that case
     # systemliteral must be escaped with single quotes.
     # See http://www.w3.org/TR/REC-xml/#sec-prolog-dtd.
     root = etree.XML('''<!DOCTYPE a PUBLIC 'foo' '"'><a/>''')
     doc = root.getroottree()
     self.assertEqual(doc.docinfo.doctype,
                      '''<!DOCTYPE a PUBLIC "foo" '"'>''')
     self.assertEqual(etree.tostring(doc),
                      _bytes('''<!DOCTYPE a PUBLIC "foo" '"'>\n<a/>'''))
示例#10
0
文件: test_dtd.py 项目: zym1010/lxml
 def test_html_decl(self):
     # Slightly different to one above: when we create an html element,
     # we do not start with a blank slate.
     doc = html.Element('html').getroottree()
     doc.docinfo.public_id = 'bar'
     doc.docinfo.system_url = 'baz'
     self.assertEqual(doc.docinfo.doctype,
                      '<!DOCTYPE html PUBLIC "bar" "baz">')
     self.assertEqual(etree.tostring(doc),
                      _bytes('<!DOCTYPE html PUBLIC "bar" "baz">\n<html/>'))
示例#11
0
文件: test_dtd.py 项目: zym1010/lxml
 def test_declaration_escape_quote_pid(self):
     # Standard allows quotes in systemliteral, but in that case
     # systemliteral must be escaped with single quotes.
     # See http://www.w3.org/TR/REC-xml/#sec-prolog-dtd.
     root = etree.XML('''<!DOCTYPE a PUBLIC 'foo' '"'><a/>''')
     doc = root.getroottree()
     self.assertEqual(doc.docinfo.doctype,
                      '''<!DOCTYPE a PUBLIC "foo" '"'>''')
     self.assertEqual(etree.tostring(doc),
                      _bytes('''<!DOCTYPE a PUBLIC "foo" '"'>\n<a/>'''))
示例#12
0
 def testrun():
     for _ in range(3):
         root = self.etree.Element('thread_root')
         for name in names:
             tag_name = name * 5
             new = []
             for _ in runs_per_name:
                 el = SubElement(root, tag_name, {'thread_attr_' + name: 'value'})
                 new.append(el)
             for el in new:
                 el.set('thread_attr2_' + name, 'value2')
         s = etree.tostring(root)
         self.assertTrue(result_matches(s))
示例#13
0
    def test_xslt_multiple_transforms(self):
        xml = '<a/>'
        xslt = '''\
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/">
        <response>Some text</response>
    </xsl:template>
</xsl:stylesheet>
'''
        source = self.parse(xml)
        styledoc = self.parse(xslt)
        style = etree.XSLT(styledoc)
        result = style(source)

        etree.tostring(result.getroot())
        
        source = self.parse(xml)
        styledoc = self.parse(xslt)
        style = etree.XSLT(styledoc)
        result = style(source)
        
        etree.tostring(result.getroot())
示例#14
0
 def testrun():
     for _ in range(3):
         root = self.etree.Element('thread_root')
         for name in names:
             tag_name = name * 5
             new = []
             for _ in runs_per_name:
                 el = SubElement(root, tag_name, {'thread_attr_' + name: 'value'})
                 new.append(el)
             for el in new:
                 el.set('thread_attr2_' + name, 'value2')
         s = etree.tostring(root)
         self.assertTrue(result_matches(s))
示例#15
0
    def test_xslt_repeat_transform(self):
        xml = '<a/>'
        xslt = '''\
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/">
        <response>Some text</response>
    </xsl:template>
</xsl:stylesheet>
'''
        source = self.parse(xml)
        styledoc = self.parse(xslt)
        transform = etree.XSLT(styledoc)
        result = transform(source)
        result = transform(source)
        etree.tostring(result.getroot())
        result = transform(source)
        etree.tostring(result.getroot())
        str(result)

        result1 = transform(source)
        result2 = transform(source)
        self.assertEquals(str(result1), str(result2))
        result = transform(source)
        str(result)
示例#16
0
    def test_xslt_shortcut(self):
        tree = self.parse('<a><b>B</b><c>C</c></a>')
        style = self.parse('''\
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="*" />
  <xsl:template match="/">
    <doc>
    <foo><xsl:value-of select="$bar" /></foo>
    <foo><xsl:value-of select="$baz" /></foo>
    </doc>
  </xsl:template>
</xsl:stylesheet>''')

        result = tree.xslt(style, bar="'Bar'", baz="'Baz'")
        self.assertEquals(
            _bytes('<doc><foo>Bar</foo><foo>Baz</foo></doc>'),
            etree.tostring(result.getroot()))
示例#17
0
 def test_declaration_apos(self):
     root = etree.XML('''<!DOCTYPE a SYSTEM "'"><a/>''')
     doc = root.getroottree()
     self.assertEqual(doc.docinfo.doctype, '''<!DOCTYPE a SYSTEM "'">''')
     self.assertEqual(etree.tostring(doc),
                      _bytes('''<!DOCTYPE a SYSTEM "'">\n<a/>'''))
示例#18
0
文件: test_dtd.py 项目: zym1010/lxml
 def test_declaration_apos(self):
     root = etree.XML('''<!DOCTYPE a SYSTEM "'"><a/>''')
     doc = root.getroottree()
     self.assertEqual(doc.docinfo.doctype, '''<!DOCTYPE a SYSTEM "'">''')
     self.assertEqual(etree.tostring(doc),
                      _bytes('''<!DOCTYPE a SYSTEM "'">\n<a/>'''))
示例#19
0
文件: test_dtd.py 项目: zym1010/lxml
 def test_declaration_quote_withoutpid(self):
     root = etree.XML('''<!DOCTYPE a SYSTEM '"'><a/>''')
     doc = root.getroottree()
     self.assertEqual(doc.docinfo.doctype, '''<!DOCTYPE a SYSTEM '"'>''')
     self.assertEqual(etree.tostring(doc),
                      _bytes('''<!DOCTYPE a SYSTEM '"'>\n<a/>'''))
示例#20
0
 def test_declaration_quote_withoutpid(self):
     root = etree.XML('''<!DOCTYPE a SYSTEM '"'><a/>''')
     doc = root.getroottree()
     self.assertEqual(doc.docinfo.doctype, '''<!DOCTYPE a SYSTEM '"'>''')
     self.assertEqual(etree.tostring(doc),
                      _bytes('''<!DOCTYPE a SYSTEM '"'>\n<a/>'''))
示例#21
0
 def test_comment_before_dtd(self):
     data = '<!--comment--><!DOCTYPE test>\n<!-- --><test/>'
     doc = etree.fromstring(data).getroottree()
     self.assertEqual(etree.tostring(doc),
                      _bytes(data))
示例#22
0
 def _assert_unicode(self, uxml):
     root = etree.XML(uxml)
     self.assertEqual(uni, root.text)
     self.assertEqual(etree.tostring(root), "<p>&#195;&#1664;&#12576;</p>")
示例#23
0
文件: test_dtd.py 项目: zym1010/lxml
 def test_set_decl_system(self):
     doc = etree.Element('test').getroottree()
     doc.docinfo.system_url = 'baz'
     self.assertEqual(doc.docinfo.doctype, '<!DOCTYPE test SYSTEM "baz">')
     self.assertEqual(etree.tostring(doc),
                      _bytes('<!DOCTYPE test SYSTEM "baz">\n<test/>'))
示例#24
0
 def handle(self, element):
     return etree.tostring(element)
示例#25
0
文件: test_dtd.py 项目: zym1010/lxml
 def test_comment_before_dtd(self):
     data = '<!--comment--><!DOCTYPE test>\n<!-- --><test/>'
     doc = etree.fromstring(data).getroottree()
     self.assertEqual(etree.tostring(doc), _bytes(data))
示例#26
0
 def handle(self, element):
     return etree.tostring(element)