Strona 1 z 1

[BASH] Praca z XML

: 10 wrz 2009, 11:08
autor: Nicodem
Witam,

mam plik XML z roznymi wierszami. Potrzebuje wyrzucic z niego tylko kilka ciagow znakow ale za to po kolei.
odnajdujemy taki ciag tekstu <name id="X" gdzie X to dowolny ciag znak.
i jesli znajdziemy taka linijke to szukamy w pliku dalej az do napotkania tekstu <info name="Product ID" fullname="X" gdzie znow X to dowolny ciag znakow.

Jako wyjscie potrzebuje plik csv zawierajacy pierwszy ciag znakow potem srednik i drugi ciag znakow.

Jest jeszcze dodatkowy problem - nie kazdy name id="X" ma po sobie fullname="X".
pole fullname moze w ogole nie wystepowac. wtedy w pliku csv potrzebuje miec ciag znakow z name id i po sredniku nic

Nie wiem czy wystarczajaco czytelnie opisalem. Moze ktos pomoc?

Odp: [BASH] Praca z XML

: 10 wrz 2009, 17:58
autor: хur
ja osobiście próbował bym skorzystać z tego: http://xmlstar.sourceforge.net/

Odp: [BASH] Praca z XML

: 10 wrz 2009, 20:18
autor: el.pescado
xgrep?

Odp: [BASH] Praca z XML

: 11 wrz 2009, 07:21
autor: Nicodem
Dzięki.
Niestety muszę obrobić to w bash'u. Srodowisko na ktorym to bedzie odpalone jest bardzo ubogie.
Ewentualnie PHP lub Perl.

Grep'a probowalem ale on wyciaga tylko cale linie spelniajace odpowiednie warunki.
Nie umiem zmusic grep aby wyciagnal linie spelniajaca jeden warunek, zatrzymal sie, od tego miejsca w pliku wyciagnal linie spelniajaca drugi i powrocil do poprzedniego wyszukiwania.

Odp: [BASH] Praca z XML

: 11 wrz 2009, 08:59
autor: el.pescado
Grep się do tego średnio nadaje - xgrep jest programem funkcjonalnie zbliżonym do grepa, ale operującym na plikach XML. Jeżeli nie chcesz (nie możesz) korzystać z dodatkowych narzędzi w stylu xgrep, to Perl bądź PHP pozostają praktycznie jedynym wyjściem.