[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.139.235.59: ~ $
#!/usr/bin/python -u
# -*- coding: ISO-8859-1 -*-
#
# this tests the basic APIs of the XmlTextReader interface
#
import libxml2
import sys
try:
    import StringIO
    str_io = StringIO.StringIO
except:
    import io
    str_io = io.StringIO

# Memory debug specific
libxml2.debugMemory(1)

f = str_io("""<a><b b1="b1"/><c>content of c</c></a>""")
input = libxml2.inputBuffer(f)
reader = input.newTextReader("test1")
ret = reader.Read()
if ret != 1:
    print("test1: Error reading to first element")
    sys.exit(1)
if reader.Name() != "a" or reader.IsEmptyElement() != 0 or \
   reader.NodeType() != 1 or reader.HasAttributes() != 0:
    print("test1: Error reading the first element")
    sys.exit(1)
ret = reader.Read()
if ret != 1:
    print("test1: Error reading to second element")
    sys.exit(1)
if reader.Name() != "b" or reader.IsEmptyElement() != 1 or \
   reader.NodeType() != 1 or reader.HasAttributes() != 1:
    print("test1: Error reading the second element")
    sys.exit(1)
ret = reader.Read()
if ret != 1:
    print("test1: Error reading to third element")
    sys.exit(1)
if reader.Name() != "c" or reader.IsEmptyElement() != 0 or \
   reader.NodeType() != 1 or reader.HasAttributes() != 0:
    print("test1: Error reading the third element")
    sys.exit(1)
ret = reader.Read()
if ret != 1:
    print("test1: Error reading to text node")
    sys.exit(1)
if reader.Name() != "#text" or reader.IsEmptyElement() != 0 or \
   reader.NodeType() != 3 or reader.HasAttributes() != 0 or \
   reader.Value() != "content of c":
    print("test1: Error reading the text node")
    sys.exit(1)
ret = reader.Read()
if ret != 1:
    print("test1: Error reading to end of third element")
    sys.exit(1)
if reader.Name() != "c" or reader.IsEmptyElement() != 0 or \
   reader.NodeType() != 15 or reader.HasAttributes() != 0:
    print("test1: Error reading the end of third element")
    sys.exit(1)
ret = reader.Read()
if ret != 1:
    print("test1: Error reading to end of first element")
    sys.exit(1)
if reader.Name() != "a" or reader.IsEmptyElement() != 0 or \
   reader.NodeType() != 15 or reader.HasAttributes() != 0:
    print("test1: Error reading the end of first element")
    sys.exit(1)
ret = reader.Read()
if ret != 0:
    print("test1: Error reading to end of document")
    sys.exit(1)

#
# example from the XmlTextReader docs
#
f = str_io("""<test xmlns:dt="urn:datatypes" dt:type="int"/>""")
input = libxml2.inputBuffer(f)
reader = input.newTextReader("test2")

ret = reader.Read()
if ret != 1:
    print("Error reading test element")
    sys.exit(1)
if reader.GetAttributeNo(0) != "urn:datatypes" or \
   reader.GetAttributeNo(1) != "int" or \
   reader.GetAttributeNs("type", "urn:datatypes") != "int" or \
   reader.GetAttribute("dt:type") != "int":
    print("error reading test attributes")
    sys.exit(1)

#
# example from the XmlTextReader docs
#
f = str_io("""<root xmlns:a="urn:456">
<item>
<ref href="a:b"/>
</item>
</root>""")
input = libxml2.inputBuffer(f)
reader = input.newTextReader("test3")

ret = reader.Read()
while ret == 1:
    if reader.Name() == "ref":
        if reader.LookupNamespace("a") != "urn:456":
            print("error resolving namespace prefix")
            sys.exit(1)
        break
    ret = reader.Read()
if ret != 1:
    print("Error finding the ref element")
    sys.exit(1)

#
# Home made example for the various attribute access functions
#
f = str_io("""<testattr xmlns="urn:1" xmlns:a="urn:2" b="b" a:b="a:b"/>""")
input = libxml2.inputBuffer(f)
reader = input.newTextReader("test4")
ret = reader.Read()
if ret != 1:
    print("Error reading the testattr element")
    sys.exit(1)
#
# Attribute exploration by index
#
if reader.MoveToAttributeNo(0) != 1:
    print("Failed moveToAttribute(0)")
    sys.exit(1)
if reader.Value() != "urn:1":
    print("Failed to read attribute(0)")
    sys.exit(1)
if reader.Name() != "xmlns":
    print("Failed to read attribute(0) name")
    sys.exit(1)
if reader.MoveToAttributeNo(1) != 1:
    print("Failed moveToAttribute(1)")
    sys.exit(1)
if reader.Value() != "urn:2":
    print("Failed to read attribute(1)")
    sys.exit(1)
if reader.Name() != "xmlns:a":
    print("Failed to read attribute(1) name")
    sys.exit(1)
if reader.MoveToAttributeNo(2) != 1:
    print("Failed moveToAttribute(2)")
    sys.exit(1)
if reader.Value() != "b":
    print("Failed to read attribute(2)")
    sys.exit(1)
if reader.Name() != "b":
    print("Failed to read attribute(2) name")
    sys.exit(1)
if reader.MoveToAttributeNo(3) != 1:
    print("Failed moveToAttribute(3)")
    sys.exit(1)
if reader.Value() != "a:b":
    print("Failed to read attribute(3)")
    sys.exit(1)
if reader.Name() != "a:b":
    print("Failed to read attribute(3) name")
    sys.exit(1)
#
# Attribute exploration by name
#
if reader.MoveToAttribute("xmlns") != 1:
    print("Failed moveToAttribute('xmlns')")
    sys.exit(1)
if reader.Value() != "urn:1":
    print("Failed to read attribute('xmlns')")
    sys.exit(1)
if reader.MoveToAttribute("xmlns:a") != 1:
    print("Failed moveToAttribute('xmlns')")
    sys.exit(1)
if reader.Value() != "urn:2":
    print("Failed to read attribute('xmlns:a')")
    sys.exit(1)
if reader.MoveToAttribute("b") != 1:
    print("Failed moveToAttribute('b')")
    sys.exit(1)
if reader.Value() != "b":
    print("Failed to read attribute('b')")
    sys.exit(1)
if reader.MoveToAttribute("a:b") != 1:
    print("Failed moveToAttribute('a:b')")
    sys.exit(1)
if reader.Value() != "a:b":
    print("Failed to read attribute('a:b')")
    sys.exit(1)
if reader.MoveToAttributeNs("b", "urn:2") != 1:
    print("Failed moveToAttribute('b', 'urn:2')")
    sys.exit(1)
if reader.Value() != "a:b":
    print("Failed to read attribute('b', 'urn:2')")
    sys.exit(1)
#
# Go back and read in sequence
#
if reader.MoveToElement() != 1:
    print("Failed to move back to element")
    sys.exit(1)
if reader.MoveToFirstAttribute() != 1:
    print("Failed to move to first attribute")
    sys.exit(1)
if reader.Value() != "urn:1":
    print("Failed to read attribute(0)")
    sys.exit(1)
if reader.Name() != "xmlns":
    print("Failed to read attribute(0) name")
    sys.exit(1)
if reader.MoveToNextAttribute() != 1:
    print("Failed to move to next attribute")
    sys.exit(1)
if reader.Value() != "urn:2":
    print("Failed to read attribute(1)")
    sys.exit(1)
if reader.Name() != "xmlns:a":
    print("Failed to read attribute(1) name")
    sys.exit(1)
if reader.MoveToNextAttribute() != 1:
    print("Failed to move to next attribute")
    sys.exit(1)
if reader.Value() != "b":
    print("Failed to read attribute(2)")
    sys.exit(1)
if reader.Name() != "b":
    print("Failed to read attribute(2) name")
    sys.exit(1)
if reader.MoveToNextAttribute() != 1:
    print("Failed to move to next attribute")
    sys.exit(1)
if reader.Value() != "a:b":
    print("Failed to read attribute(3)")
    sys.exit(1)
if reader.Name() != "a:b":
    print("Failed to read attribute(3) name")
    sys.exit(1)
if reader.MoveToNextAttribute() != 0:
    print("Failed to detect last attribute")
    sys.exit(1)

    
#
# a couple of tests for namespace nodes
#
f = str_io("""<a xmlns="http://example.com/foo"/>""")
input = libxml2.inputBuffer(f)
reader = input.newTextReader("test6")
ret = reader.Read()
if ret != 1:
    print("test6: failed to Read()")
    sys.exit(1)
ret = reader.MoveToFirstAttribute()
if ret != 1:
    print("test6: failed to MoveToFirstAttribute()")
    sys.exit(1)
if reader.NamespaceUri() != "http://www.w3.org/2000/xmlns/" or \
   reader.LocalName() != "xmlns" or reader.Name() != "xmlns" or \
   reader.Value() != "http://example.com/foo" or reader.NodeType() != 2:
    print("test6: failed to read the namespace node")
    sys.exit(1)

f = str_io("""<a xmlns:prefix="http://example.com/foo"/>""")
input = libxml2.inputBuffer(f)
reader = input.newTextReader("test7")
ret = reader.Read()
if ret != 1:
    print("test7: failed to Read()")
    sys.exit(1)
ret = reader.MoveToFirstAttribute()
if ret != 1:
    print("test7: failed to MoveToFirstAttribute()")
    sys.exit(1)
if reader.NamespaceUri() != "http://www.w3.org/2000/xmlns/" or \
   reader.LocalName() != "prefix" or reader.Name() != "xmlns:prefix" or \
   reader.Value() != "http://example.com/foo" or reader.NodeType() != 2:
    print("test7: failed to read the namespace node")
    sys.exit(1)

#
# Test for a limit case:
#
f = str_io("""<a/>""")
input = libxml2.inputBuffer(f)
reader = input.newTextReader("test8")
ret = reader.Read()
if ret != 1:
    print("test8: failed to read the node")
    sys.exit(1)
if reader.Name() != "a" or reader.IsEmptyElement() != 1:
    print("test8: failed to analyze the node")
    sys.exit(1)
ret = reader.Read()
if ret != 0:
    print("test8: failed to detect the EOF")
    sys.exit(1)

#
# Another test provided by St�phane Bidoul and checked with C#
#
def tst_reader(s):
    f = str_io(s)
    input = libxml2.inputBuffer(f)
    reader = input.newTextReader("tst")
    res = ""
    while reader.Read():
        res=res + "%s (%s) [%s] %d %d\n" % (reader.NodeType(),reader.Name(),
                                      reader.Value(), reader.IsEmptyElement(),
                                      reader.Depth())
        if reader.NodeType() == 1: # Element
            while reader.MoveToNextAttribute():
                res = res + "-- %s (%s) [%s] %d %d\n" % (reader.NodeType(),
                                       reader.Name(),reader.Value(),
                                       reader.IsEmptyElement(), reader.Depth())
    return res
    
doc="""<a><b b1="b1"/><c>content of c</c></a>"""
expect="""1 (a) [None] 0 0
1 (b) [None] 1 1
-- 2 (b1) [b1] 0 2
1 (c) [None] 0 1
3 (#text) [content of c] 0 2
15 (c) [None] 0 1
15 (a) [None] 0 0
"""
res = tst_reader(doc)
if res != expect:
    print("test5 failed")
    print(res)
    sys.exit(1)

doc="""<test><b/><c/></test>"""
expect="""1 (test) [None] 0 0
1 (b) [None] 1 1
1 (c) [None] 1 1
15 (test) [None] 0 0
"""
res = tst_reader(doc)
if res != expect:
    print("test9 failed")
    print(res)
    sys.exit(1)

doc="""<a><b>bbb</b><c>ccc</c></a>"""
expect="""1 (a) [None] 0 0
1 (b) [None] 0 1
3 (#text) [bbb] 0 2
15 (b) [None] 0 1
1 (c) [None] 0 1
3 (#text) [ccc] 0 2
15 (c) [None] 0 1
15 (a) [None] 0 0
"""
res = tst_reader(doc)
if res != expect:
    print("test10 failed")
    print(res)
    sys.exit(1)

doc="""<test a="a"/>"""
expect="""1 (test) [None] 1 0
-- 2 (a) [a] 0 1
"""
res = tst_reader(doc)
if res != expect:
    print("test11 failed")
    print(res)
    sys.exit(1)

doc="""<test><a>aaa</a><b/></test>"""
expect="""1 (test) [None] 0 0
1 (a) [None] 0 1
3 (#text) [aaa] 0 2
15 (a) [None] 0 1
1 (b) [None] 1 1
15 (test) [None] 0 0
"""
res = tst_reader(doc)
if res != expect:
    print("test12 failed")
    print(res)
    sys.exit(1)

doc="""<test><p></p></test>"""
expect="""1 (test) [None] 0 0
1 (p) [None] 0 1
15 (p) [None] 0 1
15 (test) [None] 0 0
"""
res = tst_reader(doc)
if res != expect:
    print("test13 failed")
    print(res)
    sys.exit(1)

doc="""<p></p>"""
expect="""1 (p) [None] 0 0
15 (p) [None] 0 0
"""
res = tst_reader(doc)
if res != expect:
    print("test14 failed")
    print(res)
    sys.exit(1)

#
# test from bug #108801 
#
doc="""<?xml version="1.0" standalone="no"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
                  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
]>

<article>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
</article>
"""
expect="""10 (article) [None] 0 0
1 (article) [None] 0 0
3 (#text) [
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
] 0 1
15 (article) [None] 0 0
"""
res = tst_reader(doc)
if res != expect:
    print("test15 failed")
    print(res)
    sys.exit(1)

#
# cleanup for memory allocation counting
#
del f
del input
del reader

# Memory debug specific
libxml2.cleanupParser()
if libxml2.debugMemory(1) == 0:
    print("OK")
else:
    print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
    libxml2.dumpMemory()

Filemanager

Name Type Size Permission Actions
TODO File 1.58 KB 0644
apibuild.py File 79.75 KB 0755
attribs.py File 819 B 0755
build.py File 1.51 KB 0755
compareNodes.py File 1.48 KB 0755
ctxterror.py File 1.29 KB 0755
cutnpaste.py File 1.26 KB 0755
dtdvalid.py File 619 B 0755
error.py File 1.04 KB 0755
inbuf.py File 498 B 0755
index.py File 32.14 KB 0755
indexes.py File 2.9 KB 0755
input_callback.py File 5.01 KB 0755
libxml2class.txt File 22.42 KB 0644
nsdel.py File 1.55 KB 0755
outbuf.py File 3.07 KB 0755
push.py File 769 B 0755
pushSAX.py File 1.46 KB 0755
pushSAXhtml.py File 1.57 KB 0755
python.html File 19.46 KB 0644
reader.py File 12.23 KB 0755
reader2.py File 5.22 KB 0755
reader3.py File 4.06 KB 0755
reader4.py File 1.15 KB 0755
reader5.py File 1.22 KB 0755
reader6.py File 2.61 KB 0755
reader7.py File 1.72 KB 0755
reader8.py File 683 B 0755
readererr.py File 1.25 KB 0755
readernext.py File 2.43 KB 0755
regexp.py File 716 B 0755
relaxng.py File 1.17 KB 0755
resolver.py File 857 B 0755
schema.py File 1.28 KB 0755
serialize.py File 4.18 KB 0755
sync.py File 3.44 KB 0755
thread2.py File 2.25 KB 0755
tst.py File 587 B 0755
tstLastError.py File 2.83 KB 0755
tstURI.py File 1.08 KB 0755
tstmem.py File 720 B 0755
tstxpath.py File 1.43 KB 0755
validDTD.py File 1.2 KB 0755
validRNG.py File 1.9 KB 0755
validSchemas.py File 2.02 KB 0755
validate.py File 1.68 KB 0755
walker.py File 2.35 KB 0755
xpath.py File 1.17 KB 0755
xpathext.py File 1.1 KB 0755
xpathleak.py File 1.53 KB 0755
xpathns.py File 552 B 0755
xpathret.py File 1.29 KB 0755