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ć
Author: tolek
Date: Sat, 12 Jul 2014 13:17
Date: Sat, 12 Jul 2014 13:17
17 lines
1788 bytes
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ć
Author: spa
Date: Sat, 12 Jul 2014 18:44
Date: Sat, 12 Jul 2014 18:44
21 lines
1987 bytes
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ć
Author: Tomasz Sowa
Date: Sat, 12 Jul 2014 22:11
Date: Sat, 12 Jul 2014 22:11
71 lines
3672 bytes
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