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 <p>Element generator factory.</p>
73 <p>Unlike the ordinary Element factory, the E factory allows you to pass in
74 more than just a tag and some optional attributes; you can also pass in
75 text and other elements. The text is added as either text or tail
76 attributes, and elements are inserted at the right spot. Some small
78 <pre class="rst-literal-block">
79 >>> from lxml import etree as ET
80 >>> from lxml.builder import E
82 >>> ET.tostring(E("tag"))
84 >>> ET.tostring(E("tag", "text"))
85 '<tag>text</tag>'
86 >>> ET.tostring(E("tag", "text", key="value"))
87 '<tag key="value">text</tag>'
88 >>> ET.tostring(E("tag", E("subtag", "text"), "tail"))
89 '<tag><subtag>text</subtag>tail</tag>'
91 <p>For simple tags, the factory also allows you to write <tt class="rst-docutils literal"><span class="pre">E.tag(...)</span></tt> instead
92 of <tt class="rst-docutils literal"><span class="pre">E('tag',</span> <span class="pre">...)</span></tt>:</p>
93 <pre class="rst-literal-block">
94 >>> ET.tostring(E.tag())
96 >>> ET.tostring(E.tag("text"))
97 '<tag>text</tag>'
98 >>> ET.tostring(E.tag(E.subtag("text"), "tail"))
99 '<tag><subtag>text</subtag>tail</tag>'
101 <p>Here's a somewhat larger example; this shows how to generate HTML
102 documents, using a mix of prepared factory functions for inline elements,
103 nested <tt class="rst-docutils literal">E.tag</tt> calls, and embedded XHTML fragments:</p>
104 <pre class="rst-literal-block">
105 # some common inline elements
111 # helper function, 'class' is a reserved word
117 E.title("This is a sample document")
120 E.h1("Hello!", CLASS("title")),
121 E.p("This is a paragraph with ", B("bold"), " text in it!"),
122 E.p("This is another paragraph, with a ",
123 A("link", href="http://www.python.org"), "."),
124 E.p("Here are some reserved characters: <spam&egg>."),
125 ET.XML("<p>And finally, here is an embedded XHTML fragment.</p>"),
130 print ET.tostring(page)
132 <p>Here's a prettyprinted version of the output from the above script:</p>
133 <pre class="rst-literal-block">
136 <title>This is a sample document</title>
139 <h1 class="title">Hello!</h1>
140 <p>This is a paragraph with <b>bold</b> text in it!</p>
141 <p>This is another paragraph, with <a href="http://www.python.org">link</a>.</p>
142 <p>Here are some reserved characters: &lt;spam&amp;egg&gt;.</p>
143 <p>And finally, here is an embedded XHTML fragment.</p>
147 <p>For namespace support, you can pass a namespace map (<tt class="rst-docutils literal">nsmap</tt>)
148 and/or a specific target <tt class="rst-docutils literal">namespace</tt> to the ElementMaker class:</p>
149 <pre class="rst-literal-block">
150 >>> E = ElementMaker(namespace="http://my.ns/")
151 >>> print(ET.tostring( E.test ))
152 <test xmlns="http://my.ns/"/>
154 >>> E = ElementMaker(namespace="http://my.ns/", nsmap={'p':'http://my.ns/'})
155 >>> print(ET.tostring( E.test ))
156 <p:test xmlns:p="http://my.ns/"/>
159 <!-- ==================== INSTANCE METHODS ==================== -->
160 <a name="section-InstanceMethods"></a>
161 <table class="summary" border="1" cellpadding="3"
162 cellspacing="0" width="100%" bgcolor="white">
163 <tr bgcolor="#70b0f0" class="table-header">
164 <td colspan="2" class="table-header">
165 <table border="0" cellpadding="0" cellspacing="0" width="100%">
167 <td align="left"><span class="table-header">Instance Methods</span></td>
168 <td align="right" valign="top"
169 ><span class="options">[<a href="#section-InstanceMethods"
170 class="privatelink" onclick="toggle_private();"
171 >hide private</a>]</span></td>
177 <td width="15%" align="right" valign="top" class="summary">
178 <span class="summary-type"> </span>
179 </td><td class="summary">
180 <table width="100%" cellpadding="0" cellspacing="0" border="0">
182 <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>,
183 <span class="summary-sig-arg">typemap</span>=<span class="summary-sig-default">None</span>,
184 <span class="summary-sig-arg">namespace</span>=<span class="summary-sig-default">None</span>,
185 <span class="summary-sig-arg">nsmap</span>=<span class="summary-sig-default">None</span>,
186 <span class="summary-sig-arg">makeelement</span>=<span class="summary-sig-default">None</span>)</span><br />
187 x.__init__(...) initializes x; see help(type(x)) for signature</td>
188 <td align="right" valign="top">
189 <span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__init__">source code</a></span>
198 <td width="15%" align="right" valign="top" class="summary">
199 <span class="summary-type"> </span>
200 </td><td class="summary">
201 <table width="100%" cellpadding="0" cellspacing="0" border="0">
203 <td><span class="summary-sig"><a name="__call__"></a><span class="summary-sig-name">__call__</span>(<span class="summary-sig-arg">x</span>,
204 <span class="summary-sig-arg">...</span>)</span><br />
206 <td align="right" valign="top">
207 <span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__call__">source code</a></span>
216 <td width="15%" align="right" valign="top" class="summary">
217 <span class="summary-type"> </span>
218 </td><td class="summary">
219 <table width="100%" cellpadding="0" cellspacing="0" border="0">
221 <td><span class="summary-sig"><a name="__getattr__"></a><span class="summary-sig-name">__getattr__</span>(<span class="summary-sig-arg">self</span>,
222 <span class="summary-sig-arg">tag</span>)</span></td>
223 <td align="right" valign="top">
224 <span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__getattr__">source code</a></span>
233 <td width="15%" align="right" valign="top" class="summary">
234 <span class="summary-type"> </span>
235 </td><td class="summary">
236 <table width="100%" cellpadding="0" cellspacing="0" border="0">
238 <td><span class="summary-sig"><a href="lxml.builder.ElementMaker-class.html#__getattribute__" class="summary-sig-name">__getattribute__</a>(<span class="summary-sig-arg">...</span>)</span><br />
239 x.__getattribute__('name') <==> x.name</td>
240 <td align="right" valign="top">
241 <span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__getattribute__">source code</a></span>
250 <td width="15%" align="right" valign="top" class="summary">
251 <span class="summary-type">a new object with type S, a subtype of T</span>
252 </td><td class="summary">
253 <table width="100%" cellpadding="0" cellspacing="0" border="0">
255 <td><span class="summary-sig"><a href="lxml.builder.ElementMaker-class.html#__new__" class="summary-sig-name">__new__</a>(<span class="summary-sig-arg">T</span>,
256 <span class="summary-sig-arg">S</span>,
257 <span class="summary-sig-arg">...</span>)</span></td>
258 <td align="right" valign="top">
259 <span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__new__">source code</a></span>
268 <td width="15%" align="right" valign="top" class="summary">
269 <span class="summary-type"> </span>
270 </td><td class="summary">
271 <table width="100%" cellpadding="0" cellspacing="0" border="0">
273 <td><span class="summary-sig"><a href="lxml.builder.ElementMaker-class.html#__reduce__" class="summary-sig-name">__reduce__</a>(<span class="summary-sig-arg">...</span>)</span><br />
274 helper for pickle</td>
275 <td align="right" valign="top">
276 <span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__reduce__">source code</a></span>
285 <td width="15%" align="right" valign="top" class="summary">
286 <span class="summary-type"> </span>
287 </td><td class="summary">
288 <table width="100%" cellpadding="0" cellspacing="0" border="0">
290 <td><span class="summary-sig"><a name="__setstate__"></a><span class="summary-sig-name">__setstate__</span>(<span class="summary-sig-arg">...</span>)</span></td>
291 <td align="right" valign="top">
292 <span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__setstate__">source code</a></span>
301 <td colspan="2" class="summary">
302 <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
303 <code>__delattr__</code>,
304 <code>__format__</code>,
305 <code>__hash__</code>,
306 <code>__reduce_ex__</code>,
307 <code>__repr__</code>,
308 <code>__setattr__</code>,
309 <code>__sizeof__</code>,
310 <code>__str__</code>,
311 <code>__subclasshook__</code>
316 <!-- ==================== PROPERTIES ==================== -->
317 <a name="section-Properties"></a>
318 <table class="summary" border="1" cellpadding="3"
319 cellspacing="0" width="100%" bgcolor="white">
320 <tr bgcolor="#70b0f0" class="table-header">
321 <td colspan="2" class="table-header">
322 <table border="0" cellpadding="0" cellspacing="0" width="100%">
324 <td align="left"><span class="table-header">Properties</span></td>
325 <td align="right" valign="top"
326 ><span class="options">[<a href="#section-Properties"
327 class="privatelink" onclick="toggle_private();"
328 >hide private</a>]</span></td>
334 <td width="15%" align="right" valign="top" class="summary">
335 <span class="summary-type"> </span>
336 </td><td class="summary">
337 <a name="_makeelement"></a><span class="summary-name">_makeelement</span>
341 <td width="15%" align="right" valign="top" class="summary">
342 <span class="summary-type"> </span>
343 </td><td class="summary">
344 <a name="_namespace"></a><span class="summary-name">_namespace</span>
348 <td width="15%" align="right" valign="top" class="summary">
349 <span class="summary-type"> </span>
350 </td><td class="summary">
351 <a name="_nsmap"></a><span class="summary-name">_nsmap</span>
355 <td width="15%" align="right" valign="top" class="summary">
356 <span class="summary-type"> </span>
357 </td><td class="summary">
358 <a name="_typemap"></a><span class="summary-name">_typemap</span>
362 <td colspan="2" class="summary">
363 <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
364 <code>__class__</code>
369 <!-- ==================== METHOD DETAILS ==================== -->
370 <a name="section-MethodDetails"></a>
371 <table class="details" border="1" cellpadding="3"
372 cellspacing="0" width="100%" bgcolor="white">
373 <tr bgcolor="#70b0f0" class="table-header">
374 <td colspan="2" class="table-header">
375 <table border="0" cellpadding="0" cellspacing="0" width="100%">
377 <td align="left"><span class="table-header">Method Details</span></td>
378 <td align="right" valign="top"
379 ><span class="options">[<a href="#section-MethodDetails"
380 class="privatelink" onclick="toggle_private();"
381 >hide private</a>]</span></td>
387 <a name="__init__"></a>
389 <table class="details" border="1" cellpadding="3"
390 cellspacing="0" width="100%" bgcolor="white">
392 <table width="100%" cellpadding="0" cellspacing="0" border="0">
393 <tr valign="top"><td>
394 <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
395 <span class="sig-arg">typemap</span>=<span class="sig-default">None</span>,
396 <span class="sig-arg">namespace</span>=<span class="sig-default">None</span>,
397 <span class="sig-arg">nsmap</span>=<span class="sig-default">None</span>,
398 <span class="sig-arg">makeelement</span>=<span class="sig-default">None</span>)</span>
399 <br /><em class="fname">(Constructor)</em>
401 </td><td align="right" valign="top"
402 ><span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__init__">source code</a></span>
406 x.__init__(...) initializes x; see help(type(x)) for signature
414 <a name="__getattribute__"></a>
416 <table class="details" border="1" cellpadding="3"
417 cellspacing="0" width="100%" bgcolor="white">
419 <table width="100%" cellpadding="0" cellspacing="0" border="0">
420 <tr valign="top"><td>
421 <h3 class="epydoc"><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-arg">...</span>)</span>
423 </td><td align="right" valign="top"
424 ><span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__getattribute__">source code</a></span>
428 x.__getattribute__('name') <==> x.name
431 object.__getattribute__
436 <a name="__new__"></a>
438 <table class="details" border="1" cellpadding="3"
439 cellspacing="0" width="100%" bgcolor="white">
441 <table width="100%" cellpadding="0" cellspacing="0" border="0">
442 <tr valign="top"><td>
443 <h3 class="epydoc"><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,
444 <span class="sig-arg">S</span>,
445 <span class="sig-arg">...</span>)</span>
447 </td><td align="right" valign="top"
448 ><span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__new__">source code</a></span>
454 <dt>Returns: a new object with type S, a subtype of T</dt>
461 <a name="__reduce__"></a>
463 <table class="details" border="1" cellpadding="3"
464 cellspacing="0" width="100%" bgcolor="white">
466 <table width="100%" cellpadding="0" cellspacing="0" border="0">
467 <tr valign="top"><td>
468 <h3 class="epydoc"><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-arg">...</span>)</span>
470 </td><td align="right" valign="top"
471 ><span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__reduce__">source code</a></span>
479 <dd><em class="note">(inherited documentation)</em></dd>
485 <!-- ==================== NAVIGATION BAR ==================== -->
486 <table class="navbar" border="0" width="100%" cellpadding="0"
487 bgcolor="#a0c0ff" cellspacing="0">
490 <th> <a
491 href="lxml-module.html">Home</a> </th>
494 <th> <a
495 href="module-tree.html">Trees</a> </th>
498 <th> <a
499 href="identifier-index.html">Indices</a> </th>
502 <th> <a
503 href="help.html">Help</a> </th>
505 <!-- Project homepage -->
506 <th class="navbar" align="right" width="100%">
507 <table border="0" cellpadding="0" cellspacing="0">
508 <tr><th class="navbar" align="center"
509 ><a class="navbar" target="_top" href="/">lxml API</a></th>
513 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
515 <td align="left" class="footer">
516 Generated by Epydoc 3.0.1
517 on Wed Jan 29 12:26:21 2020
519 <td align="right" class="footer">
520 <a target="mainFrame" href="http://epydoc.sourceforge.net"
521 >http://epydoc.sourceforge.net</a>
526 <script type="text/javascript">
528 // Private objects are initially displayed (because if
529 // javascript is turned off then we want them to be
530 // visible); but by default, we want to hide them. So hide
531 // them unless we have a cookie that says to show them.