1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-07-25 02:02:11 +03:00

added more methods of XmlTextReader. this increased the methods in the

* xmlreader.c include/libxml/xmlreader.h doc/libxml2-api.xml: added
  more methods of XmlTextReader.
* python/libxml2class.txt python/tests/reader.py: this increased the
  methods in the bndings, augmented the test to check those new
  functions.
Daniel
This commit is contained in:
Daniel Veillard
2002-12-15 23:36:49 +00:00
parent 0eb38c7259
commit da46d2d31e
6 changed files with 721 additions and 32 deletions

View File

@ -81,6 +81,157 @@ if reader.getAttributeNo(0) != "urn:datatypes" or \
print "error reading test attributes"
sys.exit(1)
#
# example from the XmlTextReader docs
#
f = StringIO.StringIO("""<root xmlns:a="urn:456">
<item>
<ref href="a:b"/>
</item>
</root>""")
input = libxml2.inputBuffer(f)
reader = input.newTextReader()
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 = StringIO.StringIO("""<testattr xmlns="urn:1" xmlns:a="urn:2" b="b" a:b="a:b"/>""")
input = libxml2.inputBuffer(f)
reader = input.newTextReader()
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)
del f
del input
del reader