Tema: Re: OT: klausimas del excelio ir .xml
Autorius: Laimis
Data: 2011-09-14 20:36:21
tom rašė:
> sveiki,
>
> turiu kruva .xml failu (struktura ta pati, tik duomenys skiriasi). Juose
> reikia visas lietuviskas raides raides �,�,�,�,�,�,�,�,� pakeisti
> atitinkamai a,c,e,e,i,s,u,u,z raid�mis. Kaip automatizuoti ta pakeitima, nes
> su funkcija "Find and Replace" galima daryti tik po viena raide, kas uzima
> daug laiko...
> O gal .xml failus galima kazkaip "sujungti"?

Turi kelias problemas, kurias, panašu, nori išspręsti per kitą galą.
Visų pirma reikia išsiaiškinti, kokia koduote yra tie xml failai ir 
galbūt ją nurodyti pačiame faile, nes ji ten apskritai nenurodyta:

<?xml version="1.0" encoding="utf-8">
<...>

Nežinau, galbūt senesni ofisai, nei 2k3 korektiškai ir nevirškina utf-8 
koduotės xml failų, tai tokiu atveju, reikėtų juos perkonvertuoti į 
windows (ansi) koduotę, kuri lt atveju yra cp1257. Tą gali iconv programa:
http://xmlsoft.org/sources/win32/iconv-1.9.2.win32.zip

Konvertavimas:
iconv -c -f "utf-8" -t "cp1257" failas.xml > failas_cp1257.xml

(taip pat reikės nurodyti koduotę xml failo xml žymoje; -c raktas atmeta 
neperkonvertuojamas raides: tai skirta BOM, jei toks būtų failo 
pradžioje, ignoravimui)

Galų gale, jei  _iš_ _tikrųjų_ *reikia* _transliteruoti_ (t.y. paversti 
lietuviškas raides paprastosios/lotyniškosios abėcėlės atitikmenimis), 
tai paprastai galima padaryti su tuo pačiu iconv:

iconv -c -f "utf-8" -t "ascii//TRANSLIT" failas.xml > failas_tr.xml