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