XML'den CSV'ye
XML verisini satır ve sütunlu CSV tablosuna çevirin; tekrarlanan etiket kendiliğinden satır olur
Verileriniz sizde kalır. Dönüşüm tarayıcının içinde yapılır, hiçbir şey sunucuya gitmez.
Bu araç işinizi gördü mü?
Teşekkürler, geri bildiriminiz alındı.
Nasıl çalışır?
Tipik durum şudur: e-ticaret paneliniz ya da tedarikçiniz ürün listesini XML olarak veriyor, siz ise fiyatları Excel'de karşılaştırmak istiyorsunuz. XML dosyasını Not Defteri ile açın, içeriğini kopyalayıp sol panele yapıştırın; tablo siz yapıştırır yapıştırmaz sağ panelde belirir. Araç önce hangi etiketin tekrarlandığına bakar: 250 tane <urun> içeren bir listede her <urun> bir satır, içindeki <ad>, <fiyat>, <stok> birer sütun olur. <urun id="101"> gibi etiketin içine yazılmış bilgi @id sütununa, <tedarikci><il>Rize</il></tedarikci> gibi iç içe bilgi tedarikci.il sütununa düşer. Bir üründe olmayan alan o satırda boş hücre kalır, hiçbir satır kaymaz. Sonuç satırında "250 satır × 6 sütun · satır etiketi kendiliğinden seçildi: <urun>" gibi bir özet görürsünüz; seçim yanlışsa doğru etiketin adını "Satır sayılacak etiket" kutusuna yazın. İndir düğmesi başında UTF-8 işareti (BOM) olan bir .csv verir; Türkçe Excel bu dosyayı çift tıklamayla açar, ç, ş, ğ harfleri bozulmaz ve noktalı virgül sayesinde sütunlar doğru bölünür. Değerlere dokunulmaz: 189,90 fiyatı ve 0532 ile başlayan telefon yazıldığı gibi geçer.
Bu araç xml to csv, xml to tsv, xml to csv converter aramalarıyla da biliniyor.
XML nedir?
XML, veriyi iç içe etiketlerle taşıyan bir metin biçimidir: bir <urun> etiketi <ad>, <fiyat> ve <tedarikci> etiketlerini, <tedarikci> de <il> etiketini içerebilir. Bu ağaç yapısı tabloya birebir sığmaz; bir ürünün iki etiketi, başka bir ürünün hiç etiketi olmayabilir. Ürün feed'leri, e-Fatura ve e-Arşiv belgeleri, banka ekstreleri ve kamu entegrasyonları veriyi bu biçimde verir. Tabloya çevirirken yapılan iş ağacı düzleştirmektir: her yol (tedarikci.il) bir sütun adına dönüşür.
CSV nedir?
CSV, satırları alt alta, hücreleri bir ayırıcıyla yan yana dizen düz metin tablosudur ve Excel'in açabildiği en basit veri biçimidir. Ayırıcıyı Excel kendisi seçmez, işletim sisteminin bölge ayarına bakar: Türkçe, Almanca ve Fransızca ayarlarda noktalı virgül, İngilizce ayarda virgül bekler. Türkçe harflerin doğru görünmesi için dosyanın başında UTF-8 işareti (BOM) bulunmalıdır; bu aracın indirdiği dosyada bulunur.
XML ile CSV arasındaki fark nedir?
XML hiyerarşiyi taşır: bir siparişin içinde müşteri, müşterinin içinde adres, adresin içinde il durabilir ve her değer kendi etiketinin adıyla anılır. CSV yalnız iki boyut bilir: satır ve sütun. Bu yüzden XML'den CSV'ye geçiş kayıpsız ama yeniden düzenleyicidir; iç içe bilgi adres.il gibi uzun sütun adlarına, bir kayıtta tekrarlanan etiket etiket_2 gibi ek sütunlara dönüşür. Veriyi süzmek, sıralamak ve toplamak için CSV (Excel) rahattır; aynı veriyi bir sisteme geri vermek gerekirse XML'in yapısı gerekir.
Hangi etiket satır olur, iç içe bilgi nereye düşer
XML bir ağaçtır, CSV ise düz bir tablo; aradaki köprü "hangi etiket bir satırdır" sorusudur. Araç bunu şöyle seçer: aynı üst etiketin altında en az iki kez geçen etiketlere bakar, başka bir tekrarlanan etiketin içinde kalanları eler ve en çok tekrarlananı alır. Böylece her kişinin içindeki üç <tel> etiketi, iki <kisi> etiketini yenemez; satır <kisi> olur, telefonlar tel, tel_2, tel_3 sütunlarına yayılır.
Hiçbir etiket tekrarlanmıyorsa (tek bir faturanın başlığı gibi) belgenin tamamı tek satır olur ve sonuç satırı bunu söyler. e-Fatura (UBL) belgelerinde fatura satırları cac:InvoiceLine etiketindedir; kutuya yalnız InvoiceLine yazmanız yeterlidir, cac: öneki olmadan da eşleşir. Adres kuralı sabittir: iç içe etiketler noktayla (tedarikci.il), öznitelikler @ ile (@id, tedarikci.@tip) sütun adı olur; xmlns ile başlayan ad alanı bildirimleri sütun yapılmaz.
- <urun id="7"> → @id sütunu
- <adres><il>Rize</il></adres> → adres.il sütunu
- Aynı üründe iki <etiket> → etiket ve etiket_2 sütunları
- Bir üründe eksik alan → o satırda boş hücre
Hangi ayırıcıyı seçmeli
Türkçe Windows'ta Excel, virgülü ondalık işareti olarak kullandığı için CSV'de sütunları noktalı virgülle bekler; varsayılan bu yüzden noktalı virgüldür. Dosyayı İngilizce Excel'de, Google E-Tablolar'da ya da bir programa aktarmak için kullanacaksanız virgül seçin. Sekme seçeneği .tsv dosyası indirir; veritabanı ve analiz araçları bu biçimi sever, ayrıca kopyaladığınız tablo bir e-tabloya yapıştırıldığında sekmeler hücreleri doğru böler.
Hücrenin içinde ayırıcı, tırnak ya da satır sonu varsa hücre çift tırnağa alınır, içindeki tırnak ikilenir; Excel bu kuralı tanır ve "Kahve; \"Türk\"" gibi bir değeri tek hücrede tutar. Sayılar yorumlanmaz: XML'de sayı türü yoktur, 12,5 ile 0532 metin olarak yazılır, Excel'in ne yapacağı kendi ayarına kalır.
Sık sorulanlar
XML dosyası Excel'de açılacak CSV'ye nasıl çevrilir?
XML dosyasını Not Defteri ile açıp içeriğini kopyalayın ve bu sayfadaki sol panele yapıştırın. Tekrarlanan etiket kendiliğinden satır, içindeki etiketler sütun olur. Ayırıcıyı "Noktalı virgül — Türkçe Excel" bırakıp İndir'e basın; inen .csv dosyasına çift tıkladığınızda Excel sütunları doğru böler ve Türkçe harfleri bozmaz.
Yanlış etiket satır olarak seçildi, ne yapmalıyım?
Sonuç satırı hangi etiketin satır sayıldığını yazar. Başka bir etiket istiyorsanız adını "Satır sayılacak etiket" kutusuna yazın, örneğin urun ya da InvoiceLine; köşeli parantez ve cac: gibi önek yazmanız gerekmez. Yazdığınız ad XML'de yoksa hata mesajı XML'de geçen adları sıralar, oradan seçebilirsiniz.
XML'i TSV'ye çevirebilir miyim?
Evet. "Sütunları ayıran işaret" ayarından "Sekme (TSV)" seçin; İndir düğmesi .tsv uzantılı, sekmeyle ayrılmış bir dosya verir. Tablonun geri kalanı aynıdır: satır seçimi, iç içe etiketlerin adres.il biçimindeki sütunları ve öznitelikler değişmez.
Yapıştırdığım XML sunucuya gönderiliyor mu?
Hayır. Ayrıştırma ve CSV üretimi tamamen tarayıcınızın içinde yapılır; ürün listesi, müşteri kaydı ya da fatura yapıştırsanız bile veri bu sayfadan çıkmaz ve hiçbir yere kaydedilmez. Sayfa açıldıktan sonra internet kesilse bile dönüşüm çalışır.