abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 9
dnes 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 4
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 10
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 25
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 4
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 1
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 772 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: python parse XML s elementtree

31.12.2012 15:36 adrinko | skóre: 22
python parse XML s elementtree
Přečteno: 243×
Ahojte, oboznamujem sa prvýkrát s elementtree a potrebujem spracovať XMLko:
<?xml version="1.0" encoding="Windows-1250"?>
<rsp:responsePack version="2.0" id="001" state="ok" note="" programVersion="9801.8 (19.5.2011)" xmlns:rsp="http://www.stormware.cz/schema/version_2/response.xsd" xmlns:rdc="http://www.stormware.cz/schema/version_2/documentresponse.xsd" xmlns:typ="http://www.stormware.cz/schema/version_2/type.xsd" xmlns:lst="http://www.stormware.cz/schema/version_2/list.xsd" xmlns:lStk="http://www.stormware.cz/schema/version_2/list_stock.xsd" xmlns:lAdb="http://www.stormware.cz/schema/version_2/list_addBook.xsd" xmlns:acu="http://www.stormware.cz/schema/version_2/accountingunit.xsd" xmlns:inv="http://www.stormware.cz/schema/version_2/invoice.xsd" xmlns:vch="http://www.stormware.cz/schema/version_2/voucher.xsd" xmlns:int="http://www.stormware.cz/schema/version_2/intDoc.xsd" xmlns:stk="http://www.stormware.cz/schema/version_2/stock.xsd" xmlns:ord="http://www.stormware.cz/schema/version_2/order.xsd" xmlns:ofr="http://www.stormware.cz/schema/version_2/offer.xsd" xmlns:enq="http://www.stormware.cz/schema/version_2/enquiry.xsd" xmlns:vyd="http://www.stormware.cz/schema/version_2/vydejka.xsd" xmlns:pri="http://www.stormware.cz/schema/version_2/prijemka.xsd" xmlns:bal="http://www.stormware.cz/schema/version_2/balance.xsd" xmlns:pre="http://www.stormware.cz/schema/version_2/prevodka.xsd" xmlns:vyr="http://www.stormware.cz/schema/version_2/vyroba.xsd" xmlns:pro="http://www.stormware.cz/schema/version_2/prodejka.xsd" xmlns:con="http://www.stormware.cz/schema/version_2/contract.xsd" xmlns:adb="http://www.stormware.cz/schema/version_2/addressbook.xsd" xmlns:prm="http://www.stormware.cz/schema/version_2/parameter.xsd" xmlns:lCon="http://www.stormware.cz/schema/version_2/list_contract.xsd" xmlns:ctg="http://www.stormware.cz/schema/version_2/category.xsd" xmlns:ipm="http://www.stormware.cz/schema/version_2/intParam.xsd">
<rsp:responsePackItem version="2.0" id="li1" state="ok">
    <lst:listInvoice version="2.0" dateTimeStamp="2011-05-27T10:47:23Z" dateValidFrom="2011-05-27" state="ok">
        <lst:invoice version="2.0">
            <inv:invoiceHeader>
                <inv:id>20</inv:id>
                <inv:invoiceType>issuedInvoice</inv:invoiceType>
                <inv:number>
                    <typ:id>26</typ:id>
                    <typ:ids>1101</typ:ids>
                    <typ:numberRequested>110100001</typ:numberRequested>
                </inv:number>
                <inv:symVar>110100001</inv:symVar>
                <inv:date>2011-01-30</inv:date>
                <inv:dateTax>2011-01-30</inv:dateTax>
                <inv:dateAccounting>2011-01-30</inv:dateAccounting>
                <inv:dateDue>2011-02-13</inv:dateDue>
                <inv:accounting>
                    <typ:id>17</typ:id>
                    <typ:ids>3Fv</typ:ids>
                </inv:accounting>
                <inv:classificationVAT>
                    <typ:id>251</typ:id>
                    <typ:ids>UD</typ:ids>
                    <typ:classificationVATType/>
                </inv:classificationVAT>
                <inv:text>Fakturujeme Vám zboží dle Vaší objednávky:  </inv:text>
                <inv:partnerIdentity>
                    <typ:id>15</typ:id>
                    <typ:address>
                        <typ:company>INTEAK spol. s r. o.</typ:company>
                        <typ:division>prodejna</typ:division>
                        <typ:name>David Jánský</typ:name>
                        <typ:city>Benešovice</typ:city>
                        <typ:street>Jiřího z Poděbrad 35</typ:street>
                        <typ:zip>463 48</typ:zip>
                        <typ:ico>85236972</typ:ico>
                        <typ:dic>CZ85236972</typ:dic>
                    </typ:address>
                    <typ:shipToAddress>
                        <typ:company/>
                        <typ:division/>
                        <typ:name/>
                        <typ:city/>
                        <typ:street/>
                    </typ:shipToAddress>
                </inv:partnerIdentity>
                <inv:myIdentity>
                    <typ:address>
                        <typ:company>Novák </typ:company>
                        <typ:surname>Novák</typ:surname>
                        <typ:name>Jan</typ:name>
                        <typ:city>Jihlava 1</typ:city>
                        <typ:street>Horní</typ:street>
                        <typ:number>15</typ:number>
                        <typ:zip>586 01</typ:zip>
                        <typ:ico>12345678</typ:ico>
                        <typ:dic>CZ12345678</typ:dic>
                        <typ:phone>569 876 542</typ:phone>
                        <typ:mobilPhone>602 852 369</typ:mobilPhone>
                        <typ:fax>564 563 216</typ:fax>
                        <typ:email>info@novak.cz</typ:email>
                        <typ:www>www.novak.cz</typ:www>
                    </typ:address>
                </inv:myIdentity>
                <inv:dateOrder>2011-01-22</inv:dateOrder>
                <inv:paymentType>
                    <typ:id>1</typ:id>
                    <typ:ids>příkazem</typ:ids>
                    <typ:paymentType>draft</typ:paymentType>
                </inv:paymentType>
                <inv:account>
                    <typ:id>2</typ:id>
                    <typ:ids>KB</typ:ids>
                </inv:account>
                <inv:symConst>0308</inv:symConst>
                <inv:centre>
                    <typ:id>1</typ:id>
                    <typ:ids>BRNO</typ:ids>
                </inv:centre>
                <inv:activity>
                    <typ:id>2</typ:id>
                    <typ:ids>NÁBYTEK</typ:ids>
                </inv:activity>
                <inv:liquidation>
                    <typ:date>2011-02-12</typ:date>
                    <typ:amountHome>356</typ:amountHome>
                </inv:liquidation>
            </inv:invoiceHeader>
            <inv:invoiceDetail>
                <inv:invoiceItem>
                    <inv:id>19</inv:id>
                    <inv:text>Židle Z220</inv:text>
                    <inv:quantity>2.0</inv:quantity>
                    <inv:unit>ks</inv:unit>
                    <inv:coefficient>1.0</inv:coefficient>
                    <inv:rateVAT>high</inv:rateVAT>
                    <inv:discountPercentage>0.0</inv:discountPercentage>
                    <inv:homeCurrency>
                        <typ:unitPrice>1968</typ:unitPrice>
                        <typ:price>3936</typ:price>
                        <typ:priceVAT>787.2</typ:priceVAT>
                        <typ:priceSum>4723.2</typ:priceSum>
                    </inv:homeCurrency>
                    <inv:code>Z220</inv:code>
                    <inv:guarantee>0</inv:guarantee>
                    <inv:guaranteeType>none</inv:guaranteeType>
                    <inv:stockItem>
                        <typ:store>
                            <typ:id>1</typ:id>
                            <typ:ids>ZBOŽÍ</typ:ids>
                        </typ:store>
                        <typ:stockItem>
                            <typ:id>27</typ:id>
                            <typ:ids>Z220</typ:ids>
                            <typ:PLU>650</typ:PLU>
                        </typ:stockItem>
                    </inv:stockItem>
                </inv:invoiceItem>
                <inv:invoiceItem>
                    <inv:id>20</inv:id>
                    <inv:text>Konferenční stolek chrom</inv:text>
                    <inv:quantity>1.0</inv:quantity>
                    <inv:unit>ks</inv:unit>
                    <inv:coefficient>1.0</inv:coefficient>
                    <inv:rateVAT>high</inv:rateVAT>
                    <inv:discountPercentage>0.0</inv:discountPercentage>
                    <inv:homeCurrency>
                        <typ:unitPrice>7680</typ:unitPrice>
                        <typ:price>7680</typ:price>
                        <typ:priceVAT>1536</typ:priceVAT>
                        <typ:priceSum>9216</typ:priceSum>
                    </inv:homeCurrency>
                    <inv:note>Rozměr: 120 x 60</inv:note>
                    <inv:code>Konf11</inv:code>
                    <inv:guarantee>0</inv:guarantee>
                    <inv:guaranteeType>none</inv:guaranteeType>
                    <inv:stockItem>
                        <typ:store>
                            <typ:id>1</typ:id>
                            <typ:ids>ZBOŽÍ</typ:ids>
                        </typ:store>
                        <typ:stockItem>
                            <typ:id>10</typ:id>
                            <typ:ids>Konf11</typ:ids>
                            <typ:PLU>625</typ:PLU>
                        </typ:stockItem>
                    </inv:stockItem>
                </inv:invoiceItem>
                <inv:invoiceItem>
                    <inv:id>21</inv:id>
                    <inv:text>Křeslo čalouněné 1320</inv:text>
                    <inv:quantity>4.0</inv:quantity>
                    <inv:unit>ks</inv:unit>
                    <inv:coefficient>1.0</inv:coefficient>
                    <inv:rateVAT>high</inv:rateVAT>
                    <inv:discountPercentage>0.0</inv:discountPercentage>
                    <inv:homeCurrency>
                        <typ:unitPrice>5988</typ:unitPrice>
                        <typ:price>23952</typ:price>
                        <typ:priceVAT>4790.4</typ:priceVAT>
                        <typ:priceSum>28742.4</typ:priceSum>
                    </inv:homeCurrency>
                    <inv:code>Kř1320</inv:code>
                    <inv:guarantee>0</inv:guarantee>
                    <inv:guaranteeType>none</inv:guaranteeType>
                    <inv:stockItem>
                        <typ:store>
                            <typ:id>1</typ:id>
                            <typ:ids>ZBOŽÍ</typ:ids>
                        </typ:store>
                        <typ:stockItem>
                            <typ:id>13</typ:id>
                            <typ:ids>Kř1320</typ:ids>
                            <typ:PLU>627</typ:PLU>
                        </typ:stockItem>
                    </inv:stockItem>
                </inv:invoiceItem>
            </inv:invoiceDetail>
            <inv:invoiceSummary>
                <inv:roundingDocument>up2one</inv:roundingDocument>
                <inv:roundingVAT>none</inv:roundingVAT>
                <inv:homeCurrency>
                    <typ:priceNone>0</typ:priceNone>
                    <typ:priceLow>0</typ:priceLow>
                    <typ:priceLowVAT>0</typ:priceLowVAT>
                    <typ:priceLowSum>0</typ:priceLowSum>
                    <typ:priceHigh>35568</typ:priceHigh>
                    <typ:priceHighVAT>7113.6</typ:priceHighVAT>
                    <typ:priceHighSum>42681.6</typ:priceHighSum>
                    <typ:round>
                        <typ:priceRound>0.4</typ:priceRound>
                    </typ:round>
                </inv:homeCurrency>
            </inv:invoiceSummary>
        </lst:invoice>
    </lst:listInvoice>
</rsp:responsePackItem>
</rsp:responsePack>
Ako dostanem dáta z typ:priceHighSum, typ:name, typ:ico, typ:company, typ:date?

Toto mi nefunguje:
group='lst:invoice'
for group in root.findall('inv:invoiceHeader'):
    invoiceHeader = group.find('inv:id').text
    print invoiceHeader

Řešení dotazu:


Odpovědi

31.12.2012 17:19 Jary | skóre: 30 | blog: Jary má blog | Dům
Rozbalit Rozbalit vše Re: python parse XML s elementtree
To proto, že to inv je namespace prefix.

IMHO, abys mohl používat inv:invoiceHeader, budeš muset ten prefix zaregistrovat. Ale nevím, jak se to s ElementTree dělá.

Každopádně, tohle funguje:
In [6]: t=ElementTree().parse('/tmp/windoury.xml')

In [18]: t.tag
Out[18]: '{http://www.stormware.cz/schema/version_2/response.xsd}responsePack'

In [19]: t.findall('.//{http://www.stormware.cz/schema/version_2/invoice.xsd}invoiceHeader')
Out[19]: [<Element '{http://www.stormware.cz/schema/version_2/invoice.xsd}invoiceHeader' at 0x29eb450>]
IPython rulez BTW.
.sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
1.1.2013 13:27 adrinko | skóre: 22
Rozbalit Rozbalit vše Re: python parse XML s elementtree
vdaka! nevedel som, na co su tam tie prefixy. uz mi to ako tak funguje a mozem postupne selektovat data. pekny novy rok zelam
1.1.2013 13:59 adrinko | skóre: 22
Rozbalit Rozbalit vše Re: python parse XML s elementtree
btw, pokusal som sa zaregistrovat ten prefix s
ET.register_namespace("inv", "http://www.stormware.cz/schema/version_2/invoice.xsd")
aby sa to dalo pouzivat s inv:id, ale nejako to nefunguje u mna
Traceback (most recent call last):
  File "C:\tutorial\temp_xml2.py", line 34, in module>
    for listInvoice in root.findall('inv:invoiceHeader'):
  File "C:\Python27\LIB\xml\etree\ElementTree.py", line 390, in findall
    return ElementPath.findall(self, path, namespaces)
  File "C:\Python27\LIB\xml\etree\ElementPath.py", line 293, in findall
    return list(iterfind(elem, path, namespaces))
  File "C:\Python27\LIB\xml\etree\ElementPath.py", line 259, in iterfind
    token = next()
  File "C:\Python27\LIB\xml\etree\ElementPath.py", line 83, in xpath_tokenizer
    raise SyntaxError("prefix %r not found in prefix map" % prefix)
SyntaxError: prefix 'inv' not found in prefix map
>>>
1.1.2013 19:11 Jary | skóre: 30 | blog: Jary má blog | Dům
Rozbalit Rozbalit vše Re: python parse XML s elementtree
Mě to taky nefungovalo, proto jsem psal, že nevím jak to udělat s ElementTree

Nicméně mám hodně rád knihovnu lxml. Je dost kompatibilní s ElementTree a je k němu i dobrá dokumentace, která pojednává mimo jiné i o jmenných prostorech.
.sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.