astro py:docs

- Index
- Modules

### Navigation

- next »
- « previous |
- Astropy v0.3 »
- Astropy Core Package Utilities (`astropy.utils`) »
- XMLWriter

# XMLWriter

class `astropy.utils.xml.writer.``XMLWriter`(file)

  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)

    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)

    Adds a comment to the output stream.

    Parameters:

    comment : str

    > Comment text, as a Unicode string.

  `data`(text)

    Adds character data to the output stream.

    Parameters:

    text : str

    > Character data, as a Unicode string.

  `element`(tag, text=None, wrap=False, attrib={}, **extra)

    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)

    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`()
  `get_indentation`()

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

  `get_indentation_spaces`(offset=0)

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

  static `object_attrs`(obj, attrs)

    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)

    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)

    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`.