<br>thanks!!!<br>i have understood the u operator.<br>One question:<br><span style="font-weight: bold;"><span style="font-weight: bold;">1)</span>WHY MY CODE PUT THE u OPERATOR IN THE VIDEO OUTPUT?</span><br><br><br><br><div>
<span class="gmail_quote">2005/12/21, Marco Meoni &lt;<a href="mailto:meonimarco@gmail.com">meonimarco@gmail.com</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
thanks!!!<br>i have understood the u operator.<br>One question:<br><span style="font-weight: bold;">WHY</span><br><br><div><span class="gmail_quote">2005/12/21, Werner F. Bruhin &lt;<a href="mailto:werner.bruhin@free.fr" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
werner.bruhin@free.fr
</a>&gt;:</span><div><span class="e" id="q_1084dd113a585101_1"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Marco Meoni wrote:<br><br>&gt; Hello everybody.
<br>&gt; I have a problem with xmlproc.
<br>&gt; If I have a dtd in the direcory of this file, the parser send me to<br>&gt; video the elelments and the attirbutes of the dtd.<br>&gt; this is the video output:<br>&gt;<br>&gt; sbaush@sbaush:/media/hda5/Universita'/Tesi/Manager$ python 
parser2.py<br>&gt; ELEMENTO: meshap-manager - (u'|', [(u'iptables-request', ''),<br>&gt; (u'iptables-response', ''), (u'routing-table-request', ''),<br>&gt; (u'routing-table-response', '')], '')<br>&gt; ELEMENTO: iptables-request - (u'|', [(u'policy', ''), (u'list', ''),
<br>&gt; (u'flush', ''), (u'append', ''), (u'delete', '')], '')<br>&gt; ELEMENTO: policy - EMPTY<br>&gt; ATTRIBUTO: chain - Elemento: policy - Contenuto: [u'INPUT', u'OUTPUT',<br>&gt; u'FORWARD'] #REQUIRED - Default:[None]
<br>&gt; ATTRIBUTO: target - Elemento: policy - Contenuto: [u'DROP', u'ACCEPT',<br>&gt; u'REJECT'] #REQUIRED - Default:[None]<br>&gt; ELEMENTO: list - EMPTY<br>&gt; ATTRIBUTO: chain - Elemento: list - Contenuto: [u'INPUT', u'OUTPUT',
<br>&gt; u'FORWARD'] #IMPLIED - Default:[None]<br>&gt; ELEMENTO: flush - EMPTY<br>&gt; ATTRIBUTO: chain - Elemento: flush - Contenuto: [u'INPUT', u'OUTPUT',<br>&gt; u'FORWARD'] #IMPLIED - Default:[None]<br>&gt; ELEMENTO: append - (u',', [(u'protocol', u'?'), (u'source', u'?'),
<br>&gt; (u'destination', u'?'), (u'jump', '')], '')<br>&gt; ATTRIBUTO: chain - Elemento: append - Contenuto: [u'INPUT', u'OUTPUT',<br>&gt; u'FORWARD'] #REQUIRED - Default:[None]<br>&gt; ELEMENTO: protocol - EMPTY<br>&gt; ATTRIBUTO: type - Elemento: protocol - Contenuto: [u'tcp', u'udp',
<br>&gt; u'icmp'] #REQUIRED - Default:[None]<br>&gt; ELEMENTO: source - EMPTY<br>&gt; ATTRIBUTO: address - Elemento: source - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]<br>&gt; ELEMENTO: destination - EMPTY<br>&gt; ATTRIBUTO: address - Elemento: destination - Contenuto: CDATA
<br>&gt; #REQUIRED - Default:[None]<br>&gt; ELEMENTO: jump - EMPTY<br>&gt; ATTRIBUTO: option - Elemento: jump - Contenuto: [u'DROP', u'ACCEPT',<br>&gt; u'REJECT'] #REQUIRED - Default:[None]<br>&gt; ELEMENTO: delete - (u'|', [(u',', [(u'protocol', u'?'), (u'source',
<br>&gt; ''), (u'jump', '')], ''), (u'number', '')], '')<br>&gt; ATTRIBUTO: chain - Elemento: delete - Contenuto: [u'INPUT', u'OUTPUT',<br>&gt; u'FORWARD'] #REQUIRED - Default:[None]<br>&gt; ELEMENTO: number - EMPTY<br>&gt; ATTRIBUTO: line - Elemento: number - Contenuto: CDATA #REQUIRED -
<br>&gt; Default:[None]<br>&gt; ELEMENTO: iptables-response - (u'|', [(u'done', ''), (u'listtable',<br>&gt; '')], '')<br>&gt; ELEMENTO: done - EMPTY<br>&gt; ATTRIBUTO: value - Elemento: done - Contenuto: [u'true', u'false']
<br>&gt; #REQUIRED - Default:[None]<br>&gt; ELEMENTO: listtable - ('', [(u'table', u'+')], '')<br>&gt; ELEMENTO: table - ('', [(u'rule', u'*')], '')<br>&gt; ATTRIBUTO: chain - Elemento: table - Contenuto: [u'INPUT', u'OUTPUT',
<br>&gt; u'FORWARD'] #REQUIRED - Default:[None]<br>&gt; ATTRIBUTO: policy - Elemento: table - Contenuto: [u'ACCEPT', u'DROP',<br>&gt; u'REJECT'] #REQUIRED - Default:[None]<br>&gt; ELEMENTO: rule - EMPTY<br>&gt; ATTRIBUTO: number - Elemento: rule - Contenuto: CDATA #REQUIRED -
<br>&gt; Default:[None]<br>&gt; ATTRIBUTO: target - Elemento: rule - Contenuto: [u'ACCEPT', u'DROP',<br>&gt; u'REJECT'] #REQUIRED - Default:[None]<br>&gt; ATTRIBUTO: protocol - Elemento: rule - Contenuto: [u'tcp', u'udp',
<br>&gt; u'icmp'] #REQUIRED - Default:[None]<br>&gt; ATTRIBUTO: option - Elemento: rule - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]<br>&gt; ATTRIBUTO: source - Elemento: rule - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]
<br>&gt; ATTRIBUTO: destination - Elemento: rule - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]<br>&gt; ATTRIBUTO: description - Elemento: rule - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]<br>&gt; ELEMENTO: routing-table-request - EMPTY
<br>&gt; ELEMENTO: routing-table-response - ('', [(u'route', '')], '')<br>&gt; ELEMENTO: route - ('', [(u'row', u'*')], '')<br>&gt; ELEMENTO: row - EMPTY<br>&gt; ATTRIBUTO: interface - Elemento: row - Contenuto: CDATA #REQUIRED -
<br>&gt; Default:[None]<br>&gt; ATTRIBUTO: destination - Elemento: row - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]<br>&gt; ATTRIBUTO: gateway - Elemento: row - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]
<br>&gt; ATTRIBUTO: flags - Elemento: row - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]<br>&gt; ATTRIBUTO: refcnt - Elemento: row - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]<br>&gt; ATTRIBUTO: use - Elemento: row - Contenuto: CDATA #REQUIRED -
<br>&gt; Default:[None]<br>&gt; ATTRIBUTO: metric - Elemento: row - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]<br>&gt; ATTRIBUTO: mask - Elemento: row - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]<br>&gt; ATTRIBUTO: mtu - Elemento: row - Contenuto: CDATA #REQUIRED -
<br>&gt; Default:[None]<br>&gt; ATTRIBUTO: window - Elemento: row - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]<br>&gt; ATTRIBUTO: irtt - Elemento: row - Contenuto: CDATA #REQUIRED -<br>&gt; Default:[None]<br>&gt;
<br>&gt; It works perfectly. The question is: what is the &quot;u&quot; in the elements??<br>&gt; Thanks to all.<br>&gt; below there is my code.<br><br>The 'u' creates a Unicode object from the string in quotes.<br><br>x = u'sometext'
<br> &gt;&gt;&gt; x<br>u'sometext'<br> &gt;&gt;&gt; type(x)<br>&lt;type 'unicode'&gt;<br><br>You could also use unicode() if you need to define an encoding or want<br>to define what happens on error.<br><br>y = unicode('sometext', 'iso-8859-1')
<br> &gt;&gt;&gt; y<br>u'sometext'<br> &gt;&gt;&gt; type(y)<br>&lt;type 'unicode'&gt;<br><br>See you<br>Werner<br><br>&gt;<br>&gt;<br>&gt; from xml.parsers.xmlproc import xmlproc<br>&gt; import sys<br>&gt;<br>&gt; class DTDReporter(
xmlproc.DTDConsumer):<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &quot;A simple class that just prints out the events it receives.&quot;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; def __init__(self,parser,out=sys.stdout):<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlproc.DTDConsumer.__init__(self,parser)
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.out=out<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; def new_attribute(self,elem,attr,a_type,a_decl,a_def):<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.out.write(&quot;ATTRIBUTO: %s - Elemento: %s - Contenuto: %s<br>&gt; %s - Default:[%s]\n&quot; % (attr,elem,a_type,a_decl,a_def))
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; def new_element_type(self,elem_name,elem_cont):<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.out.write(&quot;ELEMENTO: %s - %s\n&quot; % (elem_name,elem_cont))<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; # --- Client methods<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; def close(self):
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.out.close()<br>&gt;<br>&gt; # --- Main program<br>&gt;<br>&gt; if __name__ == '__main__':<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; t=xmlproc.DTDParser()<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; t.set_dtd_consumer(DTDReporter(t))<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; #Si sceglie se parsare il file messo come input da tastiera o se
<br>&gt; il file sul disco. Si puo' dare anche il percorso di localizzazione<br>&gt; del file.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; #t.parse_resource(sys.argv[1])<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; t.parse_resource(&quot;MeshAP2.dtd&quot;)<br>&gt;<br>&gt;<br>&gt;<br>&gt; --
<br>&gt;<br>&gt; mail address: <a href="mailto:meonimarco@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">meonimarco@gmail.com</a> &lt;mailto:<a href="mailto:meonimarco@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
meonimarco@gmail.com</a>&gt;<br>&gt; web site: <a href="http://www.marcomeoni.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
www.marcomeoni.net</a> &lt;<a href="http://www.marcomeoni.net/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.marcomeoni.net/</a>&gt;<br>&gt;<br>&gt;------------------------------------------------------------------------
<br>&gt;<br>&gt;_______________________________________________
<br>&gt;XML-SIG maillist&nbsp;&nbsp;-&nbsp;&nbsp;<a href="mailto:XML-SIG@python.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">XML-SIG@python.org</a><br>&gt;<a href="http://mail.python.org/mailman/listinfo/xml-sig" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://mail.python.org/mailman/listinfo/xml-sig</a><br>&gt;<br>&gt;<br>
<br><br></blockquote></span></div></div><span class="sg"><br><br clear="all"><br>-- <br>Mail address: <a href="mailto:meonimarco@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">meonimarco@gmail.com
</a><br>Web site: <a href="http://www.marcomeoni.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">www.marcomeoni.net</a>

</span></blockquote></div><br><br clear="all"><br>-- <br>Mail address: <a href="mailto:meonimarco@gmail.com">meonimarco@gmail.com</a><br>Web site: <a href="http://www.marcomeoni.net">www.marcomeoni.net</a>