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í
×
    dnes 00:11 | Nová verze

    Byla vydána nová verze 4.5 (𝕏, Bluesky) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 21:33 | Nová verze

    Byla vydána verze 3.0 (Mastodon) nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). S novou verzí formátu záznamu asciicast v3, podporou live streamingu a především kompletním přepisem z Pythonu do Rustu.

    Ladislav Hagara | Komentářů: 0
    včera 21:00 | Komunita

    Canonical oznámil, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie) v Ubuntu.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | IT novinky

    Tržní hodnota americké společnosti Alphabet, která je majitelem internetového vyhledávače Google, dnes poprvé překonala hranici tří bilionů dolarů (62,1 bilionu Kč). Alphabet se připojil k malé skupině společností, které tuto hranici pokořily. Jsou mezi nimi zatím americké firmy Nvidia, Microsoft a Apple.

    Ladislav Hagara | Komentářů: 0
    včera 20:33 | IT novinky

    Spojené státy a Čína dosáhly dohody ohledně pokračování populární čínské platformy pro sdílení krátkých videí TikTok v USA. V příspěvku na síti Truth Social to dnes naznačil americký prezident Donald Trump. Dosažení rámcové dohody o TikToku vzápětí oznámil americký ministr financí Scott Bessent, který v Madridu jedná s čínskými představiteli o vzájemných obchodních vztazích mezi USA a Čínou. Bessentova slova později potvrdila také čínská strana.

    Ladislav Hagara | Komentářů: 0
    včera 16:55 | Komunita

    MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.

    Ladislav Hagara | Komentářů: 0
    13.9. 17:33 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.

    Ladislav Hagara | Komentářů: 0
    13.9. 01:33 | IT novinky

    Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si

    … více »
    Ladislav Hagara | Komentářů: 10
    12.9. 14:00 | Nová verze

    Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.

    Ladislav Hagara | Komentářů: 0
    12.9. 12:00 | Zajímavý článek

    Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).

    |🇵🇸 | Komentářů: 21
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (81%)
     (7%)
     (3%)
     (3%)
     (4%)
     (2%)
    Celkem 181 hlasů
     Komentářů: 12, poslední 10.9. 13:00
    Rozcestník

    Dotaz: python parse XML s elementtree

    31.12.2012 15:36 adrinko | skóre: 22
    python parse XML s elementtree
    Přečteno: 522×
    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. GitHub
    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. GitHub

    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.