Imported Upstream version 2.3.5
[platform/upstream/python-lxml.git] / doc / html / api / lxml.builder.ElementMaker-class.html
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">
5 <head>
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>
9 </head>
10
11 <body bgcolor="white" text="black" link="blue" vlink="#204080"
12       alink="#204080">
13 <!-- ==================== NAVIGATION BAR ==================== -->
14 <table class="navbar" border="0" width="100%" cellpadding="0"
15        bgcolor="#a0c0ff" cellspacing="0">
16   <tr valign="middle">
17   <!-- Home link -->
18       <th>&nbsp;&nbsp;&nbsp;<a
19         href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
20
21   <!-- Tree link -->
22       <th>&nbsp;&nbsp;&nbsp;<a
23         href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
24
25   <!-- Index link -->
26       <th>&nbsp;&nbsp;&nbsp;<a
27         href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
28
29   <!-- Help link -->
30       <th>&nbsp;&nbsp;&nbsp;<a
31         href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
32
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>
38           </tr></table></th>
39   </tr>
40 </table>
41 <table width="100%" cellpadding="0" cellspacing="0">
42   <tr valign="top">
43     <td width="100%">
44       <span class="breadcrumbs">
45         <a href="lxml-module.html">Package&nbsp;lxml</a> ::
46         <a href="lxml.builder-module.html">Module&nbsp;builder</a> ::
47         Class&nbsp;ElementMaker
48       </span>
49     </td>
50     <td>
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&nbsp;private</a>]</span></td></tr>
55         <tr><td align="right"><span class="options"
56             >[<a href="frames.html" target="_top">frames</a
57             >]&nbsp;|&nbsp;<a href="lxml.builder.ElementMaker-class.html"
58             target="_top">no&nbsp;frames</a>]</span></td></tr>
59       </table>
60     </td>
61   </tr>
62 </table>
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&nbsp;code</a></span></p>
65 <pre class="base-tree">
66 object --+
67          |
68         <strong class="uidshort">ElementMaker</strong>
69 </pre>
70
71 <hr />
72 <pre class="literalblock">
73 Element generator factory.
74
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
79 examples::
80
81     &gt;&gt;&gt; from lxml import etree as ET
82     &gt;&gt;&gt; from lxml.builder import E
83
84     &gt;&gt;&gt; ET.tostring(E(&quot;tag&quot;))
85     '&lt;tag/&gt;'
86     &gt;&gt;&gt; ET.tostring(E(&quot;tag&quot;, &quot;text&quot;))
87     '&lt;tag&gt;text&lt;/tag&gt;'
88     &gt;&gt;&gt; ET.tostring(E(&quot;tag&quot;, &quot;text&quot;, key=&quot;value&quot;))
89     '&lt;tag key=&quot;value&quot;&gt;text&lt;/tag&gt;'
90     &gt;&gt;&gt; ET.tostring(E(&quot;tag&quot;, E(&quot;subtag&quot;, &quot;text&quot;), &quot;tail&quot;))
91     '&lt;tag&gt;&lt;subtag&gt;text&lt;/subtag&gt;tail&lt;/tag&gt;'
92
93 For simple tags, the factory also allows you to write ``E.tag(...)`` instead
94 of ``E('tag', ...)``::
95
96     &gt;&gt;&gt; ET.tostring(E.tag())
97     '&lt;tag/&gt;'
98     &gt;&gt;&gt; ET.tostring(E.tag(&quot;text&quot;))
99     '&lt;tag&gt;text&lt;/tag&gt;'
100     &gt;&gt;&gt; ET.tostring(E.tag(E.subtag(&quot;text&quot;), &quot;tail&quot;))
101     '&lt;tag&gt;&lt;subtag&gt;text&lt;/subtag&gt;tail&lt;/tag&gt;'
102
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::
106
107     # some common inline elements
108     A = E.a
109     I = E.i
110     B = E.b
111
112     def CLASS(v):
113         # helper function, 'class' is a reserved word
114         return {'class': v}
115
116     page = (
117         E.html(
118             E.head(
119                 E.title(&quot;This is a sample document&quot;)
120             ),
121             E.body(
122                 E.h1(&quot;Hello!&quot;, CLASS(&quot;title&quot;)),
123                 E.p(&quot;This is a paragraph with &quot;, B(&quot;bold&quot;), &quot; text in it!&quot;),
124                 E.p(&quot;This is another paragraph, with a &quot;,
125                     A(&quot;link&quot;, href=&quot;http://www.python.org&quot;), &quot;.&quot;),
126                 E.p(&quot;Here are some reservered characters: &lt;spam&amp;egg&gt;.&quot;),
127                 ET.XML(&quot;&lt;p&gt;And finally, here is an embedded XHTML fragment.&lt;/p&gt;&quot;),
128             )
129         )
130     )
131
132     print ET.tostring(page)
133
134 Here's a prettyprinted version of the output from the above script::
135
136     &lt;html&gt;
137       &lt;head&gt;
138         &lt;title&gt;This is a sample document&lt;/title&gt;
139       &lt;/head&gt;
140       &lt;body&gt;
141         &lt;h1 class=&quot;title&quot;&gt;Hello!&lt;/h1&gt;
142         &lt;p&gt;This is a paragraph with &lt;b&gt;bold&lt;/b&gt; text in it!&lt;/p&gt;
143         &lt;p&gt;This is another paragraph, with &lt;a href=&quot;http://www.python.org&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;
144         &lt;p&gt;Here are some reservered characters: &amp;lt;spam&amp;amp;egg&amp;gt;.&lt;/p&gt;
145         &lt;p&gt;And finally, here is an embedded XHTML fragment.&lt;/p&gt;
146       &lt;/body&gt;
147     &lt;/html&gt;
148
149 For namespace support, you can pass a namespace map (``nsmap``)
150 and/or a specific target ``namespace`` to the ElementMaker class::
151
152 &gt;&gt;&gt; E = ElementMaker(namespace=&quot;http://my.ns/&quot;)
153 &gt;&gt;&gt; print(ET.tostring( E.test ))
154 &lt;test xmlns=&quot;http://my.ns/&quot;/&gt;
155
156 &gt;&gt;&gt; E = ElementMaker(namespace=&quot;http://my.ns/&quot;, nsmap={'p':'http://my.ns/'})
157 &gt;&gt;&gt; print(ET.tostring( E.test ))
158 &lt;p:test xmlns:p=&quot;http://my.ns/&quot;/&gt;
159
160 </pre>
161
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%">
169       <tr valign="top">
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>
175       </tr>
176     </table>
177   </td>
178 </tr>
179 <tr>
180     <td width="15%" align="right" valign="top" class="summary">
181       <span class="summary-type">&nbsp;</span>
182     </td><td class="summary">
183       <table width="100%" cellpadding="0" cellspacing="0" border="0">
184         <tr>
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&nbsp;code</a></span>
193             
194           </td>
195         </tr>
196       </table>
197       
198     </td>
199   </tr>
200 <tr>
201     <td width="15%" align="right" valign="top" class="summary">
202       <span class="summary-type">&nbsp;</span>
203     </td><td class="summary">
204       <table width="100%" cellpadding="0" cellspacing="0" border="0">
205         <tr>
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&nbsp;code</a></span>
212             
213           </td>
214         </tr>
215       </table>
216       
217     </td>
218   </tr>
219 <tr>
220     <td width="15%" align="right" valign="top" class="summary">
221       <span class="summary-type">&nbsp;</span>
222     </td><td class="summary">
223       <table width="100%" cellpadding="0" cellspacing="0" border="0">
224         <tr>
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&nbsp;code</a></span>
229             
230           </td>
231         </tr>
232       </table>
233       
234     </td>
235   </tr>
236   <tr>
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>
251       </p>
252     </td>
253   </tr>
254 </table>
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%">
262       <tr valign="top">
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>
268       </tr>
269     </table>
270   </td>
271 </tr>
272   <tr>
273     <td colspan="2" class="summary">
274     <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
275       <code>__class__</code>
276       </p>
277     </td>
278   </tr>
279 </table>
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%">
287       <tr valign="top">
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>
293       </tr>
294     </table>
295   </td>
296 </tr>
297 </table>
298 <a name="__init__"></a>
299 <div>
300 <table class="details" border="1" cellpadding="3"
301        cellspacing="0" width="100%" bgcolor="white">
302 <tr><td>
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>
311   </h3>
312   </td><td align="right" valign="top"
313     ><span class="codelink"><a href="lxml.builder-pysrc.html#ElementMaker.__init__">source&nbsp;code</a></span>&nbsp;
314     </td>
315   </tr></table>
316   
317   x.__init__(...) initializes x; see help(type(x)) for signature
318   <dl class="fields">
319     <dt>Overrides:
320         object.__init__
321         <dd><em class="note">(inherited documentation)</em></dd>
322     </dt>
323   </dl>
324 </td></tr></table>
325 </div>
326 <br />
327 <!-- ==================== NAVIGATION BAR ==================== -->
328 <table class="navbar" border="0" width="100%" cellpadding="0"
329        bgcolor="#a0c0ff" cellspacing="0">
330   <tr valign="middle">
331   <!-- Home link -->
332       <th>&nbsp;&nbsp;&nbsp;<a
333         href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
334
335   <!-- Tree link -->
336       <th>&nbsp;&nbsp;&nbsp;<a
337         href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
338
339   <!-- Index link -->
340       <th>&nbsp;&nbsp;&nbsp;<a
341         href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
342
343   <!-- Help link -->
344       <th>&nbsp;&nbsp;&nbsp;<a
345         href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
346
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>
352           </tr></table></th>
353   </tr>
354 </table>
355 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
356   <tr>
357     <td align="left" class="footer">
358     Generated by Epydoc 3.0.1 on Tue Jul 31 10:14:18 2012
359     </td>
360     <td align="right" class="footer">
361       <a target="mainFrame" href="http://epydoc.sourceforge.net"
362         >http://epydoc.sourceforge.net</a>
363     </td>
364   </tr>
365 </table>
366
367 <script type="text/javascript">
368   <!--
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.
373   checkCookie();
374   // -->
375 </script>
376 </body>
377 </html>