1 <?xml version="1.0" encoding="ascii"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "DTD/xhtml1-transitional.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6 <title>lxml.builder.ElementMaker</title>
7 <link rel="stylesheet" href="epydoc.css" type="text/css" />
8 <script type="text/javascript" src="epydoc.js"></script>
11 <body bgcolor="white" text="black" link="blue" vlink="#204080"
13 <!-- ==================== NAVIGATION BAR ==================== -->
14 <table class="navbar" border="0" width="100%" cellpadding="0"
15 bgcolor="#a0c0ff" cellspacing="0">
18 <th> <a
19 href="lxml-module.html">Home</a> </th>
22 <th> <a
23 href="module-tree.html">Trees</a> </th>
26 <th> <a
27 href="identifier-index.html">Indices</a> </th>
30 <th> <a
31 href="help.html">Help</a> </th>
33 <!-- Project homepage -->
34 <th class="navbar" align="right" width="100%">
35 <table border="0" cellpadding="0" cellspacing="0">
36 <tr><th class="navbar" align="center"
37 ><a class="navbar" target="_top" href="/">lxml API</a></th>
41 <table width="100%" cellpadding="0" cellspacing="0">
44 <span class="breadcrumbs">
45 <a href="lxml-module.html">Package lxml</a> ::
46 <a href="lxml.builder-module.html">Module builder</a> ::
47 Class ElementMaker
51 <table cellpadding="0" cellspacing="0">
52 <!-- hide/show private -->
53 <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
54 onclick="toggle_private();">hide private</a>]</span></td></tr>
55 <tr><td align="right"><span class="options"
56 >[<a href="frames.html" target="_top">frames</a
57 >] | <a href="lxml.builder.ElementMaker-class.html"
58 target="_top">no frames</a>]</span></td></tr>
63 <!-- ==================== CLASS DESCRIPTION ==================== -->
64 <h1 class="epydoc">Class ElementMaker</h1><p class="nomargin-top"><span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker">source code</a></span></p>
65 <pre class="base-tree">
68 <strong class="uidshort">ElementMaker</strong>
72 <pre class="literalblock">
73 Element generator factory.
75 Unlike the ordinary Element factory, the E factory allows you to pass in
76 more than just a tag and some optional attributes; you can also pass in
77 text and other elements. The text is added as either text or tail
78 attributes, and elements are inserted at the right spot. Some small
81 >>> from lxml import etree as ET
82 >>> from lxml.builder import E
84 >>> ET.tostring(E("tag"))
86 >>> ET.tostring(E("tag", "text"))
87 '<tag>text</tag>'
88 >>> ET.tostring(E("tag", "text", key="value"))
89 '<tag key="value">text</tag>'
90 >>> ET.tostring(E("tag", E("subtag", "text"), "tail"))
91 '<tag><subtag>text</subtag>tail</tag>'
93 For simple tags, the factory also allows you to write ``E.tag(...)`` instead
94 of ``E('tag', ...)``::
96 >>> ET.tostring(E.tag())
98 >>> ET.tostring(E.tag("text"))
99 '<tag>text</tag>'
100 >>> ET.tostring(E.tag(E.subtag("text"), "tail"))
101 '<tag><subtag>text</subtag>tail</tag>'
103 Here's a somewhat larger example; this shows how to generate HTML
104 documents, using a mix of prepared factory functions for inline elements,
105 nested ``E.tag`` calls, and embedded XHTML fragments::
107 # some common inline elements
113 # helper function, 'class' is a reserved word
119 E.title("This is a sample document")
122 E.h1("Hello!", CLASS("title")),
123 E.p("This is a paragraph with ", B("bold"), " text in it!"),
124 E.p("This is another paragraph, with a ",
125 A("link", href="http://www.python.org"), "."),
126 E.p("Here are some reservered characters: <spam&egg>."),
127 ET.XML("<p>And finally, here is an embedded XHTML fragment.</p>"),
132 print ET.tostring(page)
134 Here's a prettyprinted version of the output from the above script::
138 <title>This is a sample document</title>
141 <h1 class="title">Hello!</h1>
142 <p>This is a paragraph with <b>bold</b> text in it!</p>
143 <p>This is another paragraph, with <a href="http://www.python.org">link</a>.</p>
144 <p>Here are some reservered characters: &lt;spam&amp;egg&gt;.</p>
145 <p>And finally, here is an embedded XHTML fragment.</p>
149 For namespace support, you can pass a namespace map (``nsmap``)
150 and/or a specific target ``namespace`` to the ElementMaker class::
152 >>> E = ElementMaker(namespace="http://my.ns/")
153 >>> print(ET.tostring( E.test ))
154 <test xmlns="http://my.ns/"/>
156 >>> E = ElementMaker(namespace="http://my.ns/", nsmap={'p':'http://my.ns/'})
157 >>> print(ET.tostring( E.test ))
158 <p:test xmlns:p="http://my.ns/"/>
162 <!-- ==================== INSTANCE METHODS ==================== -->
163 <a name="section-InstanceMethods"></a>
164 <table class="summary" border="1" cellpadding="3"
165 cellspacing="0" width="100%" bgcolor="white">
166 <tr bgcolor="#70b0f0" class="table-header">
167 <td colspan="2" class="table-header">
168 <table border="0" cellpadding="0" cellspacing="0" width="100%">
170 <td align="left"><span class="table-header">Instance Methods</span></td>
171 <td align="right" valign="top"
172 ><span class="options">[<a href="#section-InstanceMethods"
173 class="privatelink" onclick="toggle_private();"
174 >hide private</a>]</span></td>
180 <td width="15%" align="right" valign="top" class="summary">
181 <span class="summary-type"> </span>
182 </td><td class="summary">
183 <table width="100%" cellpadding="0" cellspacing="0" border="0">
185 <td><span class="summary-sig"><a href="lxml.builder.ElementMaker-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
186 <span class="summary-sig-arg">typemap</span>=<span class="summary-sig-default">None</span>,
187 <span class="summary-sig-arg">namespace</span>=<span class="summary-sig-default">None</span>,
188 <span class="summary-sig-arg">nsmap</span>=<span class="summary-sig-default">None</span>,
189 <span class="summary-sig-arg">makeelement</span>=<span class="summary-sig-default">None</span>)</span><br />
190 x.__init__(...) initializes x; see help(type(x)) for signature</td>
191 <td align="right" valign="top">
192 <span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__init__">source code</a></span>
201 <td width="15%" align="right" valign="top" class="summary">
202 <span class="summary-type"> </span>
203 </td><td class="summary">
204 <table width="100%" cellpadding="0" cellspacing="0" border="0">
206 <td><span class="summary-sig"><a name="__call__"></a><span class="summary-sig-name">__call__</span>(<span class="summary-sig-arg">self</span>,
207 <span class="summary-sig-arg">tag</span>,
208 <span class="summary-sig-arg">*children</span>,
209 <span class="summary-sig-arg">**attrib</span>)</span></td>
210 <td align="right" valign="top">
211 <span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__call__">source code</a></span>
220 <td width="15%" align="right" valign="top" class="summary">
221 <span class="summary-type"> </span>
222 </td><td class="summary">
223 <table width="100%" cellpadding="0" cellspacing="0" border="0">
225 <td><span class="summary-sig"><a name="__getattr__"></a><span class="summary-sig-name">__getattr__</span>(<span class="summary-sig-arg">self</span>,
226 <span class="summary-sig-arg">tag</span>)</span></td>
227 <td align="right" valign="top">
228 <span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__getattr__">source code</a></span>
237 <td colspan="2" class="summary">
238 <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
239 <code>__delattr__</code>,
240 <code>__format__</code>,
241 <code>__getattribute__</code>,
242 <code>__hash__</code>,
243 <code>__new__</code>,
244 <code>__reduce__</code>,
245 <code>__reduce_ex__</code>,
246 <code>__repr__</code>,
247 <code>__setattr__</code>,
248 <code>__sizeof__</code>,
249 <code>__str__</code>,
250 <code>__subclasshook__</code>
255 <!-- ==================== PROPERTIES ==================== -->
256 <a name="section-Properties"></a>
257 <table class="summary" border="1" cellpadding="3"
258 cellspacing="0" width="100%" bgcolor="white">
259 <tr bgcolor="#70b0f0" class="table-header">
260 <td colspan="2" class="table-header">
261 <table border="0" cellpadding="0" cellspacing="0" width="100%">
263 <td align="left"><span class="table-header">Properties</span></td>
264 <td align="right" valign="top"
265 ><span class="options">[<a href="#section-Properties"
266 class="privatelink" onclick="toggle_private();"
267 >hide private</a>]</span></td>
273 <td colspan="2" class="summary">
274 <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
275 <code>__class__</code>
280 <!-- ==================== METHOD DETAILS ==================== -->
281 <a name="section-MethodDetails"></a>
282 <table class="details" border="1" cellpadding="3"
283 cellspacing="0" width="100%" bgcolor="white">
284 <tr bgcolor="#70b0f0" class="table-header">
285 <td colspan="2" class="table-header">
286 <table border="0" cellpadding="0" cellspacing="0" width="100%">
288 <td align="left"><span class="table-header">Method Details</span></td>
289 <td align="right" valign="top"
290 ><span class="options">[<a href="#section-MethodDetails"
291 class="privatelink" onclick="toggle_private();"
292 >hide private</a>]</span></td>
298 <a name="__init__"></a>
300 <table class="details" border="1" cellpadding="3"
301 cellspacing="0" width="100%" bgcolor="white">
303 <table width="100%" cellpadding="0" cellspacing="0" border="0">
304 <tr valign="top"><td>
305 <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
306 <span class="sig-arg">typemap</span>=<span class="sig-default">None</span>,
307 <span class="sig-arg">namespace</span>=<span class="sig-default">None</span>,
308 <span class="sig-arg">nsmap</span>=<span class="sig-default">None</span>,
309 <span class="sig-arg">makeelement</span>=<span class="sig-default">None</span>)</span>
310 <br /><em class="fname">(Constructor)</em>
312 </td><td align="right" valign="top"
313 ><span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__init__">source code</a></span>
317 x.__init__(...) initializes x; see help(type(x)) for signature
321 <dd><em class="note">(inherited documentation)</em></dd>
327 <!-- ==================== NAVIGATION BAR ==================== -->
328 <table class="navbar" border="0" width="100%" cellpadding="0"
329 bgcolor="#a0c0ff" cellspacing="0">
332 <th> <a
333 href="lxml-module.html">Home</a> </th>
336 <th> <a
337 href="module-tree.html">Trees</a> </th>
340 <th> <a
341 href="identifier-index.html">Indices</a> </th>
344 <th> <a
345 href="help.html">Help</a> </th>
347 <!-- Project homepage -->
348 <th class="navbar" align="right" width="100%">
349 <table border="0" cellpadding="0" cellspacing="0">
350 <tr><th class="navbar" align="center"
351 ><a class="navbar" target="_top" href="/">lxml API</a></th>
355 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
357 <td align="left" class="footer">
358 Generated by Epydoc 3.0.1 on Tue Jul 31 10:14:18 2012
360 <td align="right" class="footer">
361 <a target="mainFrame" href="http://epydoc.sourceforge.net"
362 >http://epydoc.sourceforge.net</a>
367 <script type="text/javascript">
369 // Private objects are initially displayed (because if
370 // javascript is turned off then we want them to be
371 // visible); but by default, we want to hide them. So hide
372 // them unless we have a cookie that says to show them.