Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jak převést rozsáhlý *xml soubor do čitelnější formy?

Pro své potřeby dokážu z rozsáhlých tabulek v Excelu vytvořit požadované *xml soubory, třeba pro odesílání na úřady (typicky kontrolní hlášení k DPH).

Zajímal by mě opačný postup, tak dostat data z hotového *xml třeba do Excelu, případně databáze. K jednotlivým *xml souborům existuje i *xsd schéma. Netuším jak (jednoduše) na to, zda je nějaká možnost, jak data z toho vydolovat třeba přímo v Excelu - či je nutné použít jiný (programátorský?) postup. Respektive přesněji: vůbec tomu nerozumím.

Ta data jsou teď poněkud výbušné zboží (náhle se probudili rádoby bojovníci za GDPR, přitom VŠECHNY tyto údaje může KDOKOLIV získat - byť méně pohodlně - už řadu let), vše je k mání tady: https://www.mojedatovaschranka.cz/sds/welcome?part=opendata

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Pokud bys to potreboval, napisu ti nejakou malou utilitku, která to přehrne do Access nebo co si řek…
Jan Fiala 27.03.2023 11:56
Jan Fiala
Já to zas tak nepotřebuju, zajímalo mě to spíše teoreticky :) Asi nejjednodušší by byl převod do *cs…
L-Core 27.03.2023 12:23
L-Core
Pozadal jsem chatGPT, předhodil mu jeden node a on mi vratil kod na nacteni a zapis do souboru. Schv…
Jan Fiala 27.03.2023 13:43
Jan Fiala
Já bych na toho ChatGPT moc nespoléhal. Viz mé tristní zkušenosti popsané na 3183282-ms-potvrdil-pou…
NoReg 27.03.2023 15:19
NoReg
Jde o kostru. Nemusíš se pak drbat s mechanickym opisovanim nodu. Zbytek si upravis, ale spoustu mec…
Jan Fiala 27.03.2023 15:38
Jan Fiala
Ahoj Honzo (zdraví Paullus), Tobě je hej, umíš programovat, ale co my lamy (ejhle rým). Jinak nemo…
NoReg 27.03.2023 16:05
NoReg
Musel bys vzit 64b verzi PSPadu, tam není omezení na 2GB RAM jako u 32b verze. Ale pracovat s tím by…
Jan Fiala 27.03.2023 16:58
Jan Fiala
Já samozřejmě mám 64b verzi (5.0.7). Ale když chci otevřít ten XML soubor, tak mi to hlásí: Soubor X…
NoReg 27.03.2023 17:09
NoReg
Já samozřejmě mám 64b verzi (5.0.7). Ale když chci otevřít ten XML soubor, tak mi to hlásí: Soubor X…
Jan Fiala 28.03.2023 12:16
Jan Fiala
Jo, máš pravdu; já zapomněl dodat, že při pokusu o načtení jsem dostal celkem tři hlášky. První se m…
NoReg 28.03.2023 13:25
NoReg
Pokud by byl ten soubor v poradku, tak by se otevrel. Protoze je tam zprasene UTF-8 (zrejme namichan… nový
Jan Fiala 28.03.2023 14:00
Jan Fiala
Můžu vědět kde konkrétně je ten soubor utf-8 nevalidní? Zkusil jsem mb_check_encoding v php na utf-8… nový
kacikac 28.03.2023 15:05
kacikac
Me to pri prevodu hlasilo invalid char mapping. Dal jsem to nezkoumal. nový
Jan Fiala 28.03.2023 16:10
Jan Fiala
Takže zprasené je to, co vyhazuje tu chybu. Ne utf-8 v xml. nový
kacikac 28.03.2023 19:51
kacikac
Asi máš pravdu. Já ten soubor oprostil od diakritiky, poté pro jistotu v PSPadu po rozdělení nechal… nový
NoReg 28.03.2023 20:57
NoReg
(zdraví Paullus), Bývalý místní Paullus? ::)
čumil old 27.03.2023 19:27
čumil old
Až neuvěřitelně bývalý. Když jsem tady působil, tak to jsi býval ještě čumil very young...
NoReg 28.03.2023 10:49
NoReg
Vítej, matně si vzpomenu, že jsi chtěl cídit nějaký mosazný přemět s minimem fyzického nasazení, pak… nový
čumil old 28.03.2023 19:37
čumil old
Teda ty máš paměť jako slon! ::)https://kutilska.poradna.net/questions/2224613-jak-odstranit-zelenou… nový
host 28.03.2023 19:57
host
Ahoj hoste, víš co je nejhorší? Já si ta vlákna vůbec nepamatuji; jediné, v čem se tam poznávám je,… nový
NoReg 28.03.2023 20:51
NoReg
Čumile, tvoje hlava je stříbrný zvonek. Když si představím, že je ti jen o pár desítek let méně než… nový
NoReg 28.03.2023 20:53
NoReg
Ono to asi nebude tak horké s těmi desítkami. Jsem ročník 56. Ale zamlouvá se mi Tvůj smysl pro humo… nový
čumil old 29.03.2023 19:37
čumil old
1956? Tak to byl tuším rok, kdy mému nejmladšímu pravnoučeti diagnostikovali stařeckou demenci. nový
NoReg 29.03.2023 21:38
NoReg
Ano, ano, pro Tvůj smysl pro humor si tě pamatuju.:beer: poslední
čumil old 30.03.2023 19:23
čumil old
Paullus! Zdravim te! :-):beer:
MaSo 28.03.2023 08:13
MaSo
I já tebe, MaSo. Vidím, že i jako svědkovi historických epoch ti paměť stále slouží...
NoReg 28.03.2023 10:54
NoReg
Zatim slouzi ale je to cim dal tim horsi. Uz to neni jako pred patnacti lety, kdy jsme tu analyzoval… nový
MaSo 29.03.2023 08:54
MaSo
Já si převádím denně (už 11let) XML do čitelné podoby tak, že si ho nastyluji. Ale já ho potom jen č… nový
Kráťa 29.03.2023 09:54
Kráťa

Pokud bys to potreboval, napisu ti nejakou malou utilitku, která to přehrne do Access nebo co si řekneš (třeba DBF).
Access má limit 2GB na databázi, pokud tam bude jedna tabulka, pak 2GB na tu tabulku - nějaká režie.
Pokud si tam přidáš indexy, bude to méně.

Ahoj Honzo (zdraví Paullus),

Tobě je hej, umíš programovat, ale co my lamy (ejhle rým).

Jinak nemohl bys PS Pad přizpůsobit, aby otevíral i velké soubory? Třeba ten největší XML soubor z DS (PFO) nezvládne.

Pak bych mohl ve svém oblíbeném texťáku používat tu svoji primitivní metodu rozdělovat XML mechanicky.
Takhle musím se skřípěním zubů používat různé Notepady ++, 010Editory a jiné paskvily...

Já samozřejmě mám 64b verzi (5.0.7). Ale když chci otevřít ten XML soubor, tak mi to hlásí: Soubor XX nelze otevřít. Integer overflow.

Tak jsem se dival. Ten nejvetsi soubor datovych schranek ma zprasene UTF-8 kodovani. Proto se v PSPadu dostane do vetve, kde se pokousis opravit UTF-8 a tam ten rezim uz ty velke soubory nezvladne.
Zkusim to nejak obejit.

Jo, máš pravdu; já zapomněl dodat, že při pokusu o načtení jsem dostal celkem tři hlášky.
První se mne ptala, zda chci soubor opravdu otevřít, druhá oznámila, že obsahuje chybné UTF-8 kódování a opět se tázala, jestli ho chci přesto otevřít a až ta třetí byla definitivně zamítavá.

Pokud by byl ten soubor v poradku, tak by se otevrel.
Protoze je tam zprasene UTF-8 (zrejme namichane UTF-8 s CP1250), tak by doslo ke ztrate znaku a to u programatorskeho editoru je hloupe. Proto je tam to varovani a uzivatel ma moznost to otevrit takovym bocnim procesem, ktery kodovani nekontroluje. Ten se ale nevyrovna s tak velkym stringem.

Bud to z UTF-8 prekoduji rucne po svem nebo to pro velke retezce rozdelim a udelam navickrat.

Můžu vědět kde konkrétně je ten soubor utf-8 nevalidní?
Zkusil jsem mb_check_encoding v php na utf-8 a udává mi to, že ty soubory včetně toho největšího jsou utf-8 validní.
(Udělal jsem i ověřovací test souboru znaků české abecedy v utf-8 a ansi i mix (třeba utf-8 text s jedním ansi č) a mb_check_encoding to detekuje správně)
(mb_check_encoding kontroluje všechno, i mimo ty znaky, které jsem testoval)

Asi máš pravdu. Já ten soubor oprostil od diakritiky, poté pro jistotu v PSPadu po rozdělení nechal překódovat do UTF-8 a po opětovném spojení se to chová naprosto stejně.

Přitom po rozdělení na dva 700 MB soubory to načíst šlo.

Já si převádím denně (už 11let) XML do čitelné podoby tak, že si ho nastyluji.
Ale já ho potom jen čtu a kopíruji texty. V PSPadu mám užovatelský konvertor a je to během chvilky.
Jestli by to takto fungovalo i u velkého souboru (nevím, jak velký PSPad načte) netuším. Rovněž netuším, jestli by šly nadělat tabulky.
Nicméně někomu by se to mohlo hodit, proto tady odepisuji.
Konvertor vypadá takto (začátek):

[Settings]
ForwardName=Kráťův konvertor
ForwardIgnoreCase=1
BackWardIgnoreCase=0
ConversionStyle=regexpressions
[RegExpressions]
<?xml.* ?>|xml version="1.0" encoding="windows-1250" ?> <?xml-stylesheet type="text/css" href="-data.css"?>
<?xml version="1.0" encoding="utf-8" ?>|<?xml version="1.0" encoding="utf-8" ?> <?xml-stylesheet type="text/css" href="-data.css"?>
\<(Skore|Autor|Datum|Str.|Oblast|ProfilID|Zpracovano|Jazyk|Rubrika|Mutace)\>.*| 
<Poradi>.*</Poradi>|
<Zkratka_oblasti>.*</Zkratka_oblasti>|
<Zkratka_zdroje>.*</Zkratka_zdroje>|

A CSS soubor vypadá takto (začátek)


Documents {
  font-family: verdana;
  font-size: 83%;
  width: 751px;
  background-color: #ffffff;
  width: 95%;
 }

Document {
  margin-bottom: 65px;
}

Hlavicka_Clanku {
  display: block;
  margin-top: 30pt;
  margin-bottom: 10pt;
  margin-left: 20px;
}

Skore {
  width: 100%;
  color: #FF0000;
  }

Celé to potom vypadá takto:

Zpět do poradny Odpovědět na původní otázku Nahoru