Re: [python] jak na xml
On 19 Pro, 09:32, "Ondrej Beranek"wrote: > To zni hezky. Ja nepotrebuju zpracovavat nic velkeho maximalne 200kb > skripty. a 10s na skript nic neznamena > zakze by to nevadilo otakzou vsak je zda by to nebylo neefektivni ve chvili > kdy neznam presnou strukturu toho > dokumentu. jedna se totiz o program ktery je pomoci xml ulozen a komponenty > ktere hledam jsou pokazde > jinak vnorene a na jinem miste. no a jeste jedno omezeni mam to jsem vcera > tedy nenapsal.. je jim python 2.5 > ktery v tom miste kde to pojede proste nelze vymenit nebo mit vic verzi. > > Dne 19. prosinec 2008 7:46 Petr Blahos napsal(a): > > > > Ahoj je tomu téměř přesně rok co jsem naposled sáhnul na python. Dneska > > jsem > > > se dostal k tomu že bych znovu potřeboval > > > jeho služby. Řeším úlohu jejíž součástí je přečtení XML souboru a změna > > > (přesněji přepsání) některých hodnot (dat). > > > Před časem jsem se nechal inspirovat trochu sqlalchemy a trochu Gnosis > > Utils (http://freshmeat.net/projects/gnosisxml/) a napsal jsem něco, co > > přečte xml a udělá z něj objekt. Vpodstatě to funguje tak, že tagy se > > převedou na objekty, a attributy na "member variables" - jak se to řekne > > česky? Bylo to velmi konfigurovatelné a umělo to i zapisovat. Bohužel > > to teď není připraveno k release (žádná dokumentace, dlouho jsem na > > to nešáhl, neumí to namespaces, není to asi moc rychlé, určitě tam bude > > spousta chyb), ale jestli chcete, mohl bych to přes Vánoce zkusit dát > > dohromady. > > -- > > Petr > > ___ > > Python mailing list > > pyt...@py.cz > >http://www.py.cz/mailman/listinfo/python ten ma v sobe elementtree ... takze by nemel byt problem :) ono malokde je neco vysssiho nez python 2.4 ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] jak na xml
Ale #47; je /. To je dobře. V čem je problém? Do aplikace se stejně tyto entity nesmí dostat, je úkolem XML parseru je přeložit. PM Dne 21. prosinec 2008 16:37 Ondrej Beranek rain...@gmail.com napsal(a): Takze jsem s vasi pomoci udelal mensi skriptik. Ktery nema za ukol nic nez precist zapsat. zatim beze zmen. No problemem je to ze se mi z hodnot ztratily entity. tedy napriklad directory#47;/directory je nyni directory//directory coz ale neni dobre. skript vypada takto import pprint import xml.dom.minidom from xml.dom.minidom import Node doc = xml.dom.minidom.parse(c:\\devel\\test\\neco.xml) soubor=file('c:\\devel\\test\\neco2.xml','w'); soubor.write(doc.toxml('utf-8')) soubor.close() Dne 19. prosinec 2008 9:32 Ondrej Beranek rain...@gmail.com napsal(a): To zni hezky. Ja nepotrebuju zpracovavat nic velkeho maximalne 200kb skripty. a 10s na skript nic neznamena zakze by to nevadilo otakzou vsak je zda by to nebylo neefektivni ve chvili kdy neznam presnou strukturu toho dokumentu. jedna se totiz o program ktery je pomoci xml ulozen a komponenty ktere hledam jsou pokazde jinak vnorene a na jinem miste. no a jeste jedno omezeni mam to jsem vcera tedy nenapsal.. je jim python 2.5 ktery v tom miste kde to pojede proste nelze vymenit nebo mit vic verzi. Dne 19. prosinec 2008 7:46 Petr Blahos petrbla...@gmail.com napsal(a): Ahoj je tomu téměř přesně rok co jsem naposled sáhnul na python. Dneska jsem se dostal k tomu že bych znovu potřeboval jeho služby. Řeším úlohu jejíž součástí je přečtení XML souboru a změna (přesněji přepsání) některých hodnot (dat). Před časem jsem se nechal inspirovat trochu sqlalchemy a trochu Gnosis Utils (http://freshmeat.net/projects/gnosisxml/) a napsal jsem něco, co přečte xml a udělá z něj objekt. Vpodstatě to funguje tak, že tagy se převedou na objekty, a attributy na member variables - jak se to řekne česky? Bylo to velmi konfigurovatelné a umělo to i zapisovat. Bohužel to teď není připraveno k release (žádná dokumentace, dlouho jsem na to nešáhl, neumí to namespaces, není to asi moc rychlé, určitě tam bude spousta chyb), ale jestli chcete, mohl bych to přes Vánoce zkusit dát dohromady. -- Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] jak na xml
no ja je tam ale na vystupu potrebuju. duvodem je to ze to cte program ktery pokud tam nejsou spatne interpretuje lomitka. Dne 22. prosinec 2008 8:44 Petr Messner petr.mess...@gmail.com napsal(a): Ale #47; je /. To je dobře. V čem je problém? Do aplikace se stejně tyto entity nesmí dostat, je úkolem XML parseru je přeložit. PM Dne 21. prosinec 2008 16:37 Ondrej Beranek rain...@gmail.com napsal(a): Takze jsem s vasi pomoci udelal mensi skriptik. Ktery nema za ukol nic nez precist zapsat. zatim beze zmen. No problemem je to ze se mi z hodnot ztratily entity. tedy napriklad directory#47;/directory je nyni directory//directory coz ale neni dobre. skript vypada takto import pprint import xml.dom.minidom from xml.dom.minidom import Node doc = xml.dom.minidom.parse(c:\\devel\\test\\neco.xml) soubor=file('c:\\devel\\test\\neco2.xml','w'); soubor.write(doc.toxml('utf-8')) soubor.close() Dne 19. prosinec 2008 9:32 Ondrej Beranek rain...@gmail.com napsal(a): To zni hezky. Ja nepotrebuju zpracovavat nic velkeho maximalne 200kb skripty. a 10s na skript nic neznamena zakze by to nevadilo otakzou vsak je zda by to nebylo neefektivni ve chvili kdy neznam presnou strukturu toho dokumentu. jedna se totiz o program ktery je pomoci xml ulozen a komponenty ktere hledam jsou pokazde jinak vnorene a na jinem miste. no a jeste jedno omezeni mam to jsem vcera tedy nenapsal.. je jim python 2.5 ktery v tom miste kde to pojede proste nelze vymenit nebo mit vic verzi. Dne 19. prosinec 2008 7:46 Petr Blahos petrbla...@gmail.com napsal(a): Ahoj je tomu téměř přesně rok co jsem naposled sáhnul na python. Dneska jsem se dostal k tomu že bych znovu potřeboval jeho služby. Řeším úlohu jejíž součástí je přečtení XML souboru a změna (přesněji přepsání) některých hodnot (dat). Před časem jsem se nechal inspirovat trochu sqlalchemy a trochu Gnosis Utils (http://freshmeat.net/projects/gnosisxml/) a napsal jsem něco, co přečte xml a udělá z něj objekt. Vpodstatě to funguje tak, že tagy se převedou na objekty, a attributy na member variables - jak se to řekne česky? Bylo to velmi konfigurovatelné a umělo to i zapisovat. Bohužel to teď není připraveno k release (žádná dokumentace, dlouho jsem na to nešáhl, neumí to namespaces, není to asi moc rychlé, určitě tam bude spousta chyb), ale jestli chcete, mohl bych to přes Vánoce zkusit dát dohromady. -- Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] jak na xml
Tak je to ok, Vcera vecer som to totiz posielal z domu z weboveho klienta Lotus Notes a tam sa to zobrazuje bez indentacie. Dnes na to kukam v praci v nativnom klientovi Lotus Notes a vsetko je ok. Takze na vine bol ten webovy klient. Roman From: azurIt azu...@pobox.sk To: python@py.cz Date: 18.12.2008 21:53 Subject: Re: [python] jak na xml Sent by: python-boun...@py.cz Minimalne mne to doslo ok. azur -Pôvodná správa- Od: [rmik...@pss.sk] Komu: Konference PyCZ Predmet: Re: [python] jak na xml To co doslo do konferencie aj v archive vypada byt ok, ale to co sa mi javi ako odoslana posta v Lotuse ma zmrsene odsadenie. Takze snad to bol iba plany poplach :-)) -python-boun...@py.cz wrote: - To: Konference PyCZ From: rmik...@pss.sk Sent by: python-boun...@py.cz Date: 18.12.2008 21:32 Subject: Re: [python] jak na xml Zda sa ze moj vynikajuci emailovy klient Lotus Notes mi zmrsil odsadenie v zdrojakoch, ktore som pred chvilou zaslal. Takze dufam, ze aspon prilohy budu ok. -python-boun...@py.cz wrote: - To: Konference PyCZ From: Ondrej Beranek Sent by: python-boun...@py.cz Date: 18.12.2008 14:13 Subject: [python] jak na xml Ahoj je tomu téměř přesně rok co jsem naposled sáhnul na python. Dneska jsem se dostal k tomu že bych znovu potřeboval jeho služby. Řeším úlohu jejíž součástí je přečtení XML souboru a změna (přesněji přepsání) některých hodnot (dat). například mám něco jako (ted sem to vymyslel konkretni priklad nemohu uvest): auto_login prihlaseni jmeno nekam heslo1 auto_login logovani jmeno nekam heslo1 No a ja nekdy budu menit hodnotu a ovsem v zavislosti na typu a a nekdy i jmene. No chtel bych vas poprosit aby jste mi poradili nejakou komponentu se kterou mate zkusenosti ze by zvladla takove xml (1.0 utf8) precist a zas ulozit. Ondřej Beránek ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] jak na xml
Pro práci s XML jsem používal ElementTree http://effbot.org/zone/element-index.htm Od kterési verze Pythonu je tato knihovna jeho součástí .. Dne 18. prosinec 2008 14:13 Ondrej Beranek rain...@gmail.com napsal(a): Ahoj je tomu téměř přesně rok co jsem naposled sáhnul na python. Dneska jsem se dostal k tomu že bych znovu potřeboval jeho služby. Řeším úlohu jejíž součástí je přečtení XML souboru a změna (přesněji přepsání) některých hodnot (dat). například mám něco jako (ted sem to vymyslel konkretni priklad nemohu uvest): dokument komponenta typauto_login/typ jmenoprihlaseni/jmeno usernamejmeno nekam/username passwdheslo1passwd /komponenta komponenta typauto_login/typ jmenologovani/jmeno usernamejmeno nekam/username passwdheslo1passwd /komponenta /dokument No a ja nekdy budu menit hodnotu username a password ovsem v zavislosti na typu a a nekdy i jmene. No chtel bych vas poprosit aby jste mi poradili nejakou komponentu se kterou mate zkusenosti ze by zvladla takove xml (1.0 utf8) precist a zas ulozit. Ondřej Beránek ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- S pozdravem Martin Stiborský Jabber: st...@njs.netlab.cz ICQ: 224-065-849 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] jak na xml
Cau, Parsovat mozes pouzitim SAX a DOM, co Python standardne umoznuje. Tu su nato priklady: Dany je XML-dokument books5.xml, ktory vypada takto: ?xml version=1.0 encoding=windows-1250? catalog book isbn=1-56592-724-9 titleThe Cathedral amp; the Bazaar/title authorEric S. Raymond/author /book book isbn=1-56592-051-1 titleMaking TeX Work/title authorNorman Walsh/author /book book isbn=80-247-0367-X titleNaučte se Python/title authorMark Lutz amp; David Ascher/author /book book isbn=63-558-81 titleKompilátory čislicových počítačov/title authorDavid Gries/author /book book isbn=80-05-00153-3 titleAlgoritmy a štruktúry údajov/title authorNiklaus Wirth/author /book book isbn=80-05-00153-3 titleAlgoritmy a štruktúry údajov/title authorNiklaus Wirth/author /book book isbn=80-7226-799-X titleZačínáme programovat v jazyce Python/title authorDaryl Harms amp; Kenneth McDonald/author /book book isbn=80-251-0343-9 titleAlgoritmy - Datové struktury a programovací techniky/title authorPiotr Wróblewski/author /book book isbn=80-86330-05-2 titlePython - Podrobná referenční příručka pro programovací jazyk Python/title authorDavid M. Beazley/author /book book isbn=x-y-z titlePrůvodce jazykem SCHEME/title authorSkoupil, D., Kopka, M./author /book book isbn=3-89319-744-3 titleEinführung in die Automathentheorie, Formale Sprachen und Komplexitätstheorie/title authorJohn E. Hopcroft, Jeffrey D. Ullman/author /book book isbn=80-247-0442-0 titlePHP4 - Učebnice základů jazyka/title authorJiří Bráza/author /book book isbn=80-247-0441-2 titlePHP4 - Praktické příklady/title authorJiří Bráza/author /book /catalog Parsovanie pouzitim DOM: dombook.py import pprint import xml.dom.minidom from xml.dom.minidom import Node doc = xml.dom.minidom.parse(books5.xml) mapping = {} # Vratit vsetky prvky typu book # print doc.getElementsByTagName(book) # Pre kazdy prvok book for node in doc.getElementsByTagName(book): #urcit hodnotu atributu isbn isbn = node.getAttribute(isbn) # Zoznam dat ku knihe bude tvorit nazov a autor bookdata = [] # vratist vsetky prvky typu title L = node.getElementsByTagName(title) # pre kazdy prvok typu title for node2 in L: title = #print node2.childNodes for node3 in node2.childNodes: if node3.nodeType == Node.TEXT_NODE: title += node3.data bookdata.append(title) # vratist vsetky prvky typu author L = node.getElementsByTagName(author) # pre kazdy prvok typu author for node2 in L: author = #print node2.childNodes for node3 in node2.childNodes: if node3.nodeType == Node.TEXT_NODE: author += node3.data bookdata.append(author) # vytvorit polozku slovniku mapping[isbn] = bookdata keys = mapping.keys() #keys.sort() # vytlacit kluce a polozky slovnika do suboru sf=open('knihy_DOM.txt','w') for key in keys: s1=mapping[key][1].ljust(25) s2=mapping[key][0].ljust(30) # parsovane retazce su zakodovane do unicode, preto ich treba previest # do cp1250 line = %s: %s\n(ISBN %s)\n\ %(s1.encode('cp1250'), s2.encode('cp1250'), key.encode('cp1250')) sf.write(line) sf.close() Vysledkom je subor knihy_DOM.txt, ktory vypada takto: David M. Beazley : Python - Podrobná referenční příručka pro programovací jazyk Python (ISBN 80-86330-05-2) Niklaus Wirth: Algoritmy a štruktúry údajov (ISBN 80-05-00153-3) Norman Walsh : Making TeX Work (ISBN 1-56592-051-1) Daryl Harms Kenneth McDonald: Začínáme programovat v jazyce Python (ISBN 80-7226-799-X) John E. Hopcroft, Jeffrey D. Ullman: Einführung in die Automathentheorie, Formale Sprachen und Komplexitätstheorie (ISBN 3-89319-744-3) Piotr Wróblewski : Algoritmy - Datové struktury a programovací techniky (ISBN 80-251-0343-9) Skoupil, D., Kopka, M. : Průvodce jazykem SCHEME (ISBN x-y-z) Jiří Bráza : PHP4 - Učebnice základů jazyka (ISBN 80-247-0442-0) Eric S. Raymond : The Cathedral the Bazaar (ISBN 1-56592-724-9) David Gries : Kompilátory čislicových počítačov (ISBN 63-558-81) Jiří Bráza : PHP4 - Praktické příklady (ISBN 80-247-0441-2) Mark Lutz David Ascher : Naučte se Python (ISBN 80-247-0367-X) Parsovanie pouzitim SAX: saxbook.py import xml.sax.handler class BookHandler(xml.sax.handler.ContentHandler): def __init__(self): self.inTitle = 0 self.inAuthor = 0 self.mapping = {} def startElement(self, name, attributes): if name == book: # Zoznam dat ku knihe bude tvorit nazov a autor self.bookdata = [] self.title = self.author = self.isbn = attributes[isbn] elif name == title: self.inTitle = 1 elif name == author: self.inAuthor = 1 def characters(self, data): if self.inTitle: self.title += data elif self.inAuthor: self.author
Re: [python] jak na xml
Zda sa ze moj vynikajuci emailovy klient Lotus Notes mi zmrsil odsadenie v zdrojakoch, ktore som pred chvilou zaslal. Takze dufam, ze aspon prilohy budu ok. -python-boun...@py.cz wrote: - To: Konference PyCZ python@py.cz From: Ondrej Beranek rain...@gmail.com Sent by: python-boun...@py.cz Date: 18.12.2008 14:13 Subject: [python] jak na xml Ahoj je tomu téměř přesně rok co jsem naposled sáhnul na python. Dneska jsem se dostal k tomu že bych znovu potřeboval jeho služby. Řeším úlohu jejíž součástí je přečtení XML souboru a změna (přesněji přepsání) některých hodnot (dat). například mám něco jako (ted sem to vymyslel konkretni priklad nemohu uvest): dokument komponenta typauto_login/typ jmenoprihlaseni/jmeno usernamejmeno nekam/username passwdheslo1passwd /komponenta komponenta typauto_login/typ jmenologovani/jmeno usernamejmeno nekam/username passwdheslo1passwd /komponenta /dokument No a ja nekdy budu menit hodnotu username a password ovsem v zavislosti na typu a a nekdy i jmene. No chtel bych vas poprosit aby jste mi poradili nejakou komponentu se kterou mate zkusenosti ze by zvladla takove xml (1.0 utf8) precist a zas ulozit. Ondřej Beránek ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] jak na xml
To co doslo do konferencie aj v archive vypada byt ok, ale to co sa mi javi ako odoslana posta v Lotuse ma zmrsene odsadenie. Takze snad to bol iba plany poplach :-)) -python-boun...@py.cz wrote: - To: Konference PyCZ python@py.cz From: rmik...@pss.sk Sent by: python-boun...@py.cz Date: 18.12.2008 21:32 Subject: Re: [python] jak na xml Zda sa ze moj vynikajuci emailovy klient Lotus Notes mi zmrsil odsadenie v zdrojakoch, ktore som pred chvilou zaslal. Takze dufam, ze aspon prilohy budu ok. -python-boun...@py.cz wrote: - To: Konference PyCZ python@py.cz From: Ondrej Beranek rain...@gmail.com Sent by: python-boun...@py.cz Date: 18.12.2008 14:13 Subject: [python] jak na xml Ahoj je tomu téměř přesně rok co jsem naposled sáhnul na python. Dneska jsem se dostal k tomu že bych znovu potřeboval jeho služby. Řeším úlohu jejíž součástí je přečtení XML souboru a změna (přesněji přepsání) některých hodnot (dat). například mám něco jako (ted sem to vymyslel konkretni priklad nemohu uvest): dokument komponenta typauto_login/typ jmenoprihlaseni/jmeno usernamejmeno nekam/username passwdheslo1passwd /komponenta komponenta typauto_login/typ jmenologovani/jmeno usernamejmeno nekam/username passwdheslo1passwd /komponenta /dokument No a ja nekdy budu menit hodnotu username a password ovsem v zavislosti na typu a a nekdy i jmene. No chtel bych vas poprosit aby jste mi poradili nejakou komponentu se kterou mate zkusenosti ze by zvladla takove xml (1.0 utf8) precist a zas ulozit. Ondřej Beránek ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] jak na xml
Minimalne mne to doslo ok. azur -Pôvodná správa- Od: [rmik...@pss.sk] Komu: Konference PyCZ Predmet: Re: [python] jak na xml To co doslo do konferencie aj v archive vypada byt ok, ale to co sa mi javi ako odoslana posta v Lotuse ma zmrsene odsadenie. Takze snad to bol iba plany poplach :-)) -python-boun...@py.cz wrote: - To: Konference PyCZ From: rmik...@pss.sk Sent by: python-boun...@py.cz Date: 18.12.2008 21:32 Subject: Re: [python] jak na xml Zda sa ze moj vynikajuci emailovy klient Lotus Notes mi zmrsil odsadenie v zdrojakoch, ktore som pred chvilou zaslal. Takze dufam, ze aspon prilohy budu ok. -python-boun...@py.cz wrote: - To: Konference PyCZ From: Ondrej Beranek Sent by: python-boun...@py.cz Date: 18.12.2008 14:13 Subject: [python] jak na xml Ahoj je tomu téměř přesně rok co jsem naposled sáhnul na python. Dneska jsem se dostal k tomu že bych znovu potřeboval jeho služby. Řeším úlohu jejíž součástí je přečtení XML souboru a změna (přesněji přepsání) některých hodnot (dat). například mám něco jako (ted sem to vymyslel konkretni priklad nemohu uvest): auto_login prihlaseni jmeno nekam heslo1 auto_login logovani jmeno nekam heslo1 No a ja nekdy budu menit hodnotu a ovsem v zavislosti na typu a a nekdy i jmene. No chtel bych vas poprosit aby jste mi poradili nejakou komponentu se kterou mate zkusenosti ze by zvladla takove xml (1.0 utf8) precist a zas ulozit. Ondřej Beránek ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] jak na xml
Ahoj je tomu téměř přesně rok co jsem naposled sáhnul na python. Dneska jsem se dostal k tomu že bych znovu potřeboval jeho služby. Řeším úlohu jejíž součástí je přečtení XML souboru a změna (přesněji přepsání) některých hodnot (dat). Před časem jsem se nechal inspirovat trochu sqlalchemy a trochu Gnosis Utils (http://freshmeat.net/projects/gnosisxml/) a napsal jsem něco, co přečte xml a udělá z něj objekt. Vpodstatě to funguje tak, že tagy se převedou na objekty, a attributy na member variables - jak se to řekne česky? Bylo to velmi konfigurovatelné a umělo to i zapisovat. Bohužel to teď není připraveno k release (žádná dokumentace, dlouho jsem na to nešáhl, neumí to namespaces, není to asi moc rychlé, určitě tam bude spousta chyb), ale jestli chcete, mohl bych to přes Vánoce zkusit dát dohromady. -- Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python