🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.nowe-programy
3 messages
3 total messages Started by tolek Sat, 12 Jul 2014 13:17
XML plik otworzyć i normalnie przeglądać
#227435
Author: tolek
Date: Sat, 12 Jul 2014 13:17
17 lines
1788 bytes
Na stronie urzędu statystycznego
http://teryt.stat.gov.pl/Default.aspx zakładka SIMC
Są zamieszczone, spakowane pliki XML z nazwami miejscowości.
Czym to normalnie jak człowiek otworzyć (lub przekonwertować), bo dużo szumu 
o tym w googlach ale żadnego normalnego, sprytnego, szybkiego, małego 
rozwiązania nie znalazłem.
Była mowa "XML Notepad 2007" ale to nie to, zatyka mi to sytem jak zaczyna 
przetwarzać plik XML 26MB
Znalazłem jakąś stronę
http://xmlgrid.net/convert/xml-to-pdf.html
Jak zaczęło przetwarzać to 4GB RAM-u okazało się za mało.
Brak słów.
Dziwnym trafem inne państwowe instytucje potrafia wystawiać dokumenty w 
bardziej zjadliwym formacie dla zwykłego śmiertelnika.
Takie UKE wystawia w XLS 
http://www.uke.gov.pl/uke/index.jsp?place=Lead24&news_cat_id=358&news_id=3749&layout=9&page=text i 
nie ma problemu 
Re: XML plik otworzyć i normalnie przeglądać
#227436
Author: spa
Date: Sat, 12 Jul 2014 18:44
21 lines
1987 bytes
tolek wrote:
> Na stronie urzędu statystycznego
> http://teryt.stat.gov.pl/Default.aspx zakładka SIMC
> Są zamieszczone, spakowane pliki XML z nazwami miejscowości.
> Czym to normalnie jak człowiek otworzyć (lub przekonwertować), bo dużo szumu
> o tym w googlach ale żadnego normalnego, sprytnego, szybkiego, małego
> rozwiązania nie znalazłem.
> Była mowa "XML Notepad 2007" ale to nie to, zatyka mi to sytem jak zaczyna
> przetwarzać plik XML 26MB
> Znalazłem jakąś stronę
> http://xmlgrid.net/convert/xml-to-pdf.html
> Jak zaczęło przetwarzać to 4GB RAM-u okazało się za mało.
> Brak słów.
> Dziwnym trafem inne państwowe instytucje potrafia wystawiać dokumenty w
> bardziej zjadliwym formacie dla zwykłego śmiertelnika.
> Takie UKE wystawia w XLS
> http://www.uke.gov.pl/uke/index.jsp?place=Lead24&news_cat_id=358&news_id=3749&layout=9&page=text i
> nie ma problemu

Po co konwertować do pdfa?
Łatwiej jest do csv.
Re: XML plik otworzyć i normalnie przeglądać
#227437
Author: Tomasz Sowa
Date: Sat, 12 Jul 2014 22:11
71 lines
3672 bytes
Witam, dnia Sat, 12 Jul 2014 15:17:45 +0200
"tolek" <tolek@niedla.spamu> napisał:

> Na stronie urzędu statystycznego
> http://teryt.stat.gov.pl/Default.aspx zakładka SIMC
> Są zamieszczone, spakowane pliki XML z nazwami miejscowości.
> Czym to normalnie jak człowiek otworzyć (lub przekonwertować), bo
> dużo szumu o tym w googlach ale żadnego normalnego, sprytnego,
> szybkiego, małego rozwiązania nie znalazłem.
[...]

Te pliki mają usunięte znaki końca linii. Inaczej mówiąc jest jedna
wielka linia i zwykłe edytory tekstowe zdychają przy otwarciu tego.
Pliki *.xml to pliki tekstowe więc możesz użyć zwykłych narzędzi
tekstowych do pracy z nimi. Pokaże ci jak zamienić to na plik *.csv.

Po pierwsze połącz te wszystkie xmle aby pracować na jednym pliku:
$ cat *.xml > calosc

Wstaw znaki końca linii przed znacznikiem <row>:
$ cat calosc | perl -pe 's/<row>/\n<row>/g' > calosc.xml

Pozbądź się niepotrzebnych znaczników <?xml..>, <teryt> oraz </teryt>:
$ cat calosc.xml | perl -pe 's/<\?xml[^>]*>|<teryt>|<\/teryt>//g' >
calosc2.xml

Pozbądź się znaczników <calatog...> oraz </catalog>:
$ cat calosc2.xml | perl -pe 's/<catalog[^>]*>|<\/catalog>//g' >
calosc3.xml

Usuń byte order mark -- chociaż to powinno się zrobić na początku tylko
dla pierwszej linii pliku wejściowego (ale to zostawiam ci jako zadanie
domowe):
$ cat calosc3.xml  | perl -pe 's/^\xEF\xBB\xBF//g' > calosc4.xml

Pozbądźmy się znaczników <row>, </row> oraz <col...>:
$ cat calosc4.xml | perl -pe 's/<row>|<\/row>|<col[^>]*>//g' >
calosc5.xml

Jeśli występuje gdzieś przecinek to zamieńmy go hmm na kropkę (aby
wynikowy plik csv miał dobry format):
$ cat calosc5.xml | tr , . > calosc6.xml

I ostatecznie </col> zamieńmy na przecinek przy okazji pozbywając się
pustych linii:
cat calosc6.xml | perl -pe 's/<\/col>/,/g' | sed '/^$/d' > calosc.csv

Plik calosc.csv ma następujący format:
$ head -n 5 calosc.csv 
02,01,01,1,96,1,Bolesławiec,0935989,0935989,2013-01-01,
02,01,02,2,01,1,Bolesławice,0188937,0188937,2013-01-01,
02,01,02,2,09,1,Buczek,0188943,0188943,2013-01-01,
02,01,02,2,01,1,Bożejowice,0188950,0188950,2013-01-01,
02,01,02,2,01,1,Brzeźnik,0188966,0188966,2013-01-01,

A gdybyś potrzebował tylko miejscowości to:
$ cat calosc.csv | cut -d , -f 7 > miejscowosci.txt

I tutaj pliczki calosc.csv i miejscowosci.txt:
http://tmp.ttmath.org/katalog_miejscowosci.tar.gz

> Dziwnym trafem inne państwowe instytucje potrafia wystawiać dokumenty
> w bardziej zjadliwym formacie dla zwykłego śmiertelnika.
> Takie UKE wystawia w XLS 

Niezły format, taki przenośny.



-- 
Tomek
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads