XMLWriter

class astropy.utils.xml.writer.XMLWriter(file)[source] [edit on github]

A class to write well-formed and nicely indented XML.

Use like this:

w = XMLWriter(fh)
with w.tag('html'):
    with w.tag('body'):
        w.data('This is the content')

Which produces:

<html>
 <body>
  This is the content
 </body>
</html>

Methods Summary

close(id) Closes open elements, up to (and including) the element identified by the given identifier.
comment(comment) Adds a comment to the output stream.
data(text) Adds character data to the output stream.
element(tag[, text, wrap, attrib]) Adds an entire element.
end([tag, indent, wrap]) Closes the current element (opened by the most recent call to start).
flush()
get_indentation() Returns the number of indentation levels the file is currently in.
get_indentation_spaces([offset]) Returns a string of spaces that matches the current indentation level.
object_attrs(obj, attrs) Converts an object with a bunch of attributes on an object into a dictionary for use by the XMLWriter.
start(tag[, attrib]) Opens a new element.
tag(*args, **kwds) A convenience method for use with the with statement:: with writer.tag(‘foo’): writer.element(‘bar’) # </foo> is implicitly closed here Parameters are the same as to start.

Methods Documentation

close(id)[source] [edit on github]

Closes open elements, up to (and including) the element identified by the given identifier.

Parameters :

id : int

Element identifier, as returned by the start method.

comment(comment)[source] [edit on github]

Adds a comment to the output stream.

Parameters :

comment : str

Comment text, as a Unicode string.

data(text)[source] [edit on github]

Adds character data to the output stream.

Parameters :

text : str

Character data, as a Unicode string.

element(tag, text=None, wrap=False, attrib={}, **extra)[source] [edit on github]

Adds an entire element. This is the same as calling start, data, and end in sequence. The text argument can be omitted.

end(tag=None, indent=True, wrap=False)[source] [edit on github]

Closes the current element (opened by the most recent call to start).

Parameters :

tag : str

Element name. If given, the tag must match the start tag. If omitted, the current element is closed.

flush()[source] [edit on github]
get_indentation()[source] [edit on github]

Returns the number of indentation levels the file is currently in.

get_indentation_spaces(offset=0)[source] [edit on github]

Returns a string of spaces that matches the current indentation level.

static object_attrs(obj, attrs)[source] [edit on github]

Converts an object with a bunch of attributes on an object into a dictionary for use by the XMLWriter.

Parameters :

obj : object

Any Python object

attrs : sequence of str

Attribute names to pull from the object

Returns :

attrs : dict

Maps attribute names to the values retrieved from obj.attr. If any of the attributes is None, it will not appear in the output dictionary.

start(tag, attrib={}, **extra)[source] [edit on github]

Opens a new element. Attributes can be given as keyword arguments, or as a string/string dictionary. The method returns an opaque identifier that can be passed to the close() method, to close all open elements up to and including this one.

Parameters :

tag : str

The element name

attrib : dict of str -> str

Attribute dictionary. Alternatively, attributes can be given as keyword arguments.

Returns :

id : int

Returns an element identifier.

tag(*args, **kwds)[source] [edit on github]

A convenience method for use with the with statement:

with writer.tag('foo'):
    writer.element('bar')
# </foo> is implicitly closed here

Parameters are the same as to start.

Page Contents