⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 outbuf.py

📁 xml开源解析代码.版本为libxml2-2.6.29,可支持GB3212.网络消息发送XML时很有用.
💻 PY
字号:
#!/usr/bin/python -uimport sysimport libxml2import StringIOdef testSimpleBufferWrites():    f = StringIO.StringIO()    buf = libxml2.createOutputBuffer(f, "ISO-8859-1")    buf.write(3, "foo")    buf.writeString("bar")    buf.close()        if f.getvalue() != "foobar":        print "Failed to save to StringIO"        sys.exit(1)def testSaveDocToBuffer():    """    Regression test for bug #154294.    """    input = '<foo>Hello</foo>'    expected = '''\<?xml version="1.0" encoding="UTF-8"?><foo>Hello</foo>'''    f = StringIO.StringIO()    buf = libxml2.createOutputBuffer(f, 'UTF-8')    doc = libxml2.parseDoc(input)    doc.saveFileTo(buf, 'UTF-8')    doc.freeDoc()    if f.getvalue() != expected:        print 'xmlDoc.saveFileTo() call failed.'        print '     got: %s' % repr(f.getvalue())        print 'expected: %s' % repr(expected)        sys.exit(1)def testSaveFormattedDocToBuffer():    input = '<outer><inner>Some text</inner><inner/></outer>'    # The formatted and non-formatted versions of the output.    expected = ('''\<?xml version="1.0" encoding="UTF-8"?><outer><inner>Some text</inner><inner/></outer>''', '''\<?xml version="1.0" encoding="UTF-8"?><outer>  <inner>Some text</inner>  <inner/></outer>''')    doc = libxml2.parseDoc(input)    for i in (0, 1):        f = StringIO.StringIO()        buf = libxml2.createOutputBuffer(f, 'UTF-8')        doc.saveFormatFileTo(buf, 'UTF-8', i)        if f.getvalue() != expected[i]:            print 'xmlDoc.saveFormatFileTo() call failed.'            print '     got: %s' % repr(f.getvalue())            print 'expected: %s' % repr(expected[i])            sys.exit(1)    doc.freeDoc()def testSaveIntoOutputBuffer():    """    Similar to the previous two tests, except this time we invoke the save    methods on the output buffer object and pass in an XML node object.    """    input = '<foo>Hello</foo>'    expected = '''\<?xml version="1.0" encoding="UTF-8"?><foo>Hello</foo>'''    f = StringIO.StringIO()    doc = libxml2.parseDoc(input)    buf = libxml2.createOutputBuffer(f, 'UTF-8')    buf.saveFileTo(doc, 'UTF-8')    if f.getvalue() != expected:        print 'outputBuffer.saveFileTo() call failed.'        print '     got: %s' % repr(f.getvalue())        print 'expected: %s' % repr(expected)        sys.exit(1)    f = StringIO.StringIO()    buf = libxml2.createOutputBuffer(f, 'UTF-8')    buf.saveFormatFileTo(doc, 'UTF-8', 1)    if f.getvalue() != expected:        print 'outputBuffer.saveFormatFileTo() call failed.'        print '     got: %s' % repr(f.getvalue())        print 'expected: %s' % repr(expected)        sys.exit(1)    doc.freeDoc()if __name__ == '__main__':    # Memory debug specific    libxml2.debugMemory(1)    testSimpleBufferWrites()    testSaveDocToBuffer()    testSaveFormattedDocToBuffer()    testSaveIntoOutputBuffer()    libxml2.cleanupParser()    if libxml2.debugMemory(1) == 0:        print "OK"    else:        print "Memory leak %d bytes" % (libxml2.debugMemory(1))        libxml2.dumpMemory()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -