Edgewall Software

Changeset 358 for trunk/genshi/input.py


Ignore:
Timestamp:
Oct 13, 2006, 10:16:43 AM (17 years ago)
Author:
cmlenz
Message:

Move the ElementTree element-to-stream adaptation function ET() into the genshi.input module.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/genshi/input.py

    r299 r358  
    2626                        START_CDATA, END_CDATA, PI, COMMENT
    2727
    28 __all__ = ['ParseError', 'XMLParser', 'XML', 'HTMLParser', 'HTML']
     28__all__ = ['ET', 'ParseError', 'XMLParser', 'XML', 'HTMLParser', 'HTML']
     29
     30def ET(element):
     31    """Convert a given ElementTree element to a markup stream."""
     32    tag_name = QName(element.tag.lstrip('{'))
     33    attrs = Attrs(element.items())
     34
     35    yield START, (tag_name, attrs), (None, -1, -1)
     36    if element.text:
     37        yield TEXT, element.text, (None, -1, -1)
     38    for child in element.getchildren():
     39        for item in ET(child):
     40            yield item
     41    yield END, tag_name, (None, -1, -1)
     42    if element.tail:
     43        yield TEXT, element.tail, (None, -1, -1)
    2944
    3045
Note: See TracChangeset for help on using the changeset viewer.