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="__reduce_cython__"></a><span class="summary-sig-name">__reduce_cython__</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.__reduce_cython__">source code</a></span>
301 <td width="15%" align="right" valign="top" class="summary">
302 <span class="summary-type"> </span>
303 </td><td class="summary">
304 <table width="100%" cellpadding="0" cellspacing="0" border="0">
306 <td><span class="summary-sig"><a name="__setstate__"></a><span class="summary-sig-name">__setstate__</span>(<span class="summary-sig-arg">...</span>)</span></td>
307 <td align="right" valign="top">
308 <span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__setstate__">source code</a></span>
317 <td width="15%" align="right" valign="top" class="summary">
318 <span class="summary-type"> </span>
319 </td><td class="summary">
320 <table width="100%" cellpadding="0" cellspacing="0" border="0">
322 <td><span class="summary-sig"><a name="__setstate_cython__"></a><span class="summary-sig-name">__setstate_cython__</span>(<span class="summary-sig-arg">...</span>)</span></td>
323 <td align="right" valign="top">
324 <span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__setstate_cython__">source code</a></span>
333 <td colspan="2" class="summary">
334 <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
335 <code>__delattr__</code>,
336 <code>__format__</code>,
337 <code>__hash__</code>,
338 <code>__reduce_ex__</code>,
339 <code>__repr__</code>,
340 <code>__setattr__</code>,
341 <code>__sizeof__</code>,
342 <code>__str__</code>,
343 <code>__subclasshook__</code>
348 <!-- ==================== PROPERTIES ==================== -->
349 <a name="section-Properties"></a>
350 <table class="summary" border="1" cellpadding="3"
351 cellspacing="0" width="100%" bgcolor="white">
352 <tr bgcolor="#70b0f0" class="table-header">
353 <td colspan="2" class="table-header">
354 <table border="0" cellpadding="0" cellspacing="0" width="100%">
356 <td align="left"><span class="table-header">Properties</span></td>
357 <td align="right" valign="top"
358 ><span class="options">[<a href="#section-Properties"
359 class="privatelink" onclick="toggle_private();"
360 >hide private</a>]</span></td>
366 <td width="15%" align="right" valign="top" class="summary">
367 <span class="summary-type"> </span>
368 </td><td class="summary">
369 <a name="_makeelement"></a><span class="summary-name">_makeelement</span>
373 <td width="15%" align="right" valign="top" class="summary">
374 <span class="summary-type"> </span>
375 </td><td class="summary">
376 <a name="_namespace"></a><span class="summary-name">_namespace</span>
380 <td width="15%" align="right" valign="top" class="summary">
381 <span class="summary-type"> </span>
382 </td><td class="summary">
383 <a name="_nsmap"></a><span class="summary-name">_nsmap</span>
387 <td width="15%" align="right" valign="top" class="summary">
388 <span class="summary-type"> </span>
389 </td><td class="summary">
390 <a name="_typemap"></a><span class="summary-name">_typemap</span>
394 <td colspan="2" class="summary">
395 <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
396 <code>__class__</code>
401 <!-- ==================== METHOD DETAILS ==================== -->
402 <a name="section-MethodDetails"></a>
403 <table class="details" border="1" cellpadding="3"
404 cellspacing="0" width="100%" bgcolor="white">
405 <tr bgcolor="#70b0f0" class="table-header">
406 <td colspan="2" class="table-header">
407 <table border="0" cellpadding="0" cellspacing="0" width="100%">
409 <td align="left"><span class="table-header">Method Details</span></td>
410 <td align="right" valign="top"
411 ><span class="options">[<a href="#section-MethodDetails"
412 class="privatelink" onclick="toggle_private();"
413 >hide private</a>]</span></td>
419 <a name="__init__"></a>
421 <table class="details" border="1" cellpadding="3"
422 cellspacing="0" width="100%" bgcolor="white">
424 <table width="100%" cellpadding="0" cellspacing="0" border="0">
425 <tr valign="top"><td>
426 <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
427 <span class="sig-arg">typemap</span>=<span class="sig-default">None</span>,
428 <span class="sig-arg">namespace</span>=<span class="sig-default">None</span>,
429 <span class="sig-arg">nsmap</span>=<span class="sig-default">None</span>,
430 <span class="sig-arg">makeelement</span>=<span class="sig-default">None</span>)</span>
431 <br /><em class="fname">(Constructor)</em>
433 </td><td align="right" valign="top"
434 ><span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__init__">source code</a></span>
438 x.__init__(...) initializes x; see help(type(x)) for signature
446 <a name="__getattribute__"></a>
448 <table class="details" border="1" cellpadding="3"
449 cellspacing="0" width="100%" bgcolor="white">
451 <table width="100%" cellpadding="0" cellspacing="0" border="0">
452 <tr valign="top"><td>
453 <h3 class="epydoc"><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-arg">...</span>)</span>
455 </td><td align="right" valign="top"
456 ><span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__getattribute__">source code</a></span>
460 x.__getattribute__('name') <==> x.name
463 object.__getattribute__
468 <a name="__new__"></a>
470 <table class="details" border="1" cellpadding="3"
471 cellspacing="0" width="100%" bgcolor="white">
473 <table width="100%" cellpadding="0" cellspacing="0" border="0">
474 <tr valign="top"><td>
475 <h3 class="epydoc"><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,
476 <span class="sig-arg">S</span>,
477 <span class="sig-arg">...</span>)</span>
479 </td><td align="right" valign="top"
480 ><span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__new__">source code</a></span>
486 <dt>Returns: a new object with type S, a subtype of T</dt>
493 <a name="__reduce__"></a>
495 <table class="details" border="1" cellpadding="3"
496 cellspacing="0" width="100%" bgcolor="white">
498 <table width="100%" cellpadding="0" cellspacing="0" border="0">
499 <tr valign="top"><td>
500 <h3 class="epydoc"><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-arg">...</span>)</span>
502 </td><td align="right" valign="top"
503 ><span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__reduce__">source code</a></span>
511 <dd><em class="note">(inherited documentation)</em></dd>
517 <!-- ==================== NAVIGATION BAR ==================== -->
518 <table class="navbar" border="0" width="100%" cellpadding="0"
519 bgcolor="#a0c0ff" cellspacing="0">
522 <th> <a
523 href="lxml-module.html">Home</a> </th>
526 <th> <a
527 href="module-tree.html">Trees</a> </th>
530 <th> <a
531 href="identifier-index.html">Indices</a> </th>
534 <th> <a
535 href="help.html">Help</a> </th>
537 <!-- Project homepage -->
538 <th class="navbar" align="right" width="100%">
539 <table border="0" cellpadding="0" cellspacing="0">
540 <tr><th class="navbar" align="center"
541 ><a class="navbar" target="_top" href="/">lxml API</a></th>
545 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
547 <td align="left" class="footer">
548 Generated by Epydoc 3.0.1
549 on Thu Jul 9 18:29:53 2020
551 <td align="right" class="footer">
552 <a target="mainFrame" href="http://epydoc.sourceforge.net"
553 >http://epydoc.sourceforge.net</a>
558 <script type="text/javascript">
560 // Private objects are initially displayed (because if
561 // javascript is turned off then we want them to be
562 // visible); but by default, we want to hide them. So hide
563 // them unless we have a cookie that says to show them.