CodeKitHub
JSON Araçları

CSV'den XML'e Dönüştürücü

Son güncelleme:

CSV'yi XML'e dönüştürmek için her satır bir <row> öğesi haline gelir ve her sütun, başlığının adını taşıyan bir alt etikete dönüşür — ters dönüştürme, XML'de bulunan her farklı alt etiket adı için bir sütun çıkarır. İki formattan birini yapıştırın ve ihtiyacınız olan yönü seçin. Her şey yerel olarak çalışır, bu yüzden verileriniz cihazınızdan asla dışarı çıkmaz.

Bu Araç Nedir?

Bazı sistemler (eski kurumsal yazılımlar, belirli SOAP tabanlı API'ler, RSS'ye yakın beslemeler) verilerin XML olmasını beklerken, elektronik tablolar ve çoğu veri içe aktarma aracı CSV bekler. Bu araç, verileri iki format arasında taşır: CSV → XML, her satırı kök <rows> öğesi içindeki bir <row> öğesine sarar; her sütun, başlığın adını taşıyan bir alt etiket haline gelir. XML → CSV ise tam tersini yapar; bulduğu her farklı alt etiket adı için bir sütun çıkarır.

CSV tarafı, uygun bir tırnaklı alan ayrıştırıcısıyla (basit bir virgülle ayırma değil) ayrıştırılır, bu yüzden virgül, satır sonu veya gömülü tırnak içeren değerler doğru şekilde işlenir. XML tarafı, tarayıcının XML belgelerini dahili olarak ayrıştırmak için kullandığı aynı arayüz olan tarayıcının yerel DOMParser API'si kullanılarak ayrıştırılır — elle yazılmış, düzenli ifade tabanlı bir okuyucu yerine — bu yüzden iç içe geçmiş etiketler ve standart XML kaçış işlemi, gerçek bir XML ayrıştırıcısının işleyeceği şekilde işlenir.

Geçerli bir XML öğe adı olmayan sütun/etiket adları (boşluk içeren, bir rakamla başlayan vb.), XML oluşturulurken otomatik olarak temizlenir; çünkü XML öğe adları, CSV başlıklarından daha katı kurallara tabidir.

Kaynak: CSV ayrıştırma RFC 4180'i izler; XML yapısı W3C XML 1.0 spesifikasyonunu izler.

Neden Kullanmalısınız?

  • Her iki yönde de çalışır — tek bir araçta CSV'den XML'e ve XML'den CSV'ye.
  • Doğru CSV ayrıştırma — virgül, satır sonu ve kaçış karakterli tırnaklar içeren tırnaklı alanları işler, sadece basit bir virgülle ayırma değil.
  • Standartlara dayalı XML ayrıştırma — XML → CSV, özel bir regex ayrıştırıcısı yerine tarayıcının yerleşik DOMParser'ını kullanır, bu yüzden hatalı biçimlendirilmiş XML sessizce anlamsız veri üretmek yerine hata olarak bildirilir.
  • Otomatik XML kaçış işlemi — CSV değerlerinizdeki & ve < gibi özel karakterler, XML oluşturulurken doğru şekilde kaçış karakteriyle işlenir.
  • %100 istemci tarafında — buraya yapıştırdığınız hiçbir şey bir sunucuya yüklenmez.

Nasıl Kullanılır

  1. Kutuya başlık satırı içeren CSV verisi veya XML verisi yapıştırın.
  2. XML oluşturmak için "CSV → XML"'e veya XML'i tekrar bir tabloya dönüştürmek için "XML → CSV"'ye tıklayın.
  3. Çıktıyı inceleyin — kopyalayın veya dosya olarak indirin.
  4. CSV → XML için her satır, kök <rows> içine sarılmış, sütun başına bir etiket içeren bir <row> öğesi haline gelir.

Örnek

Giriş

name,age
Alice,30
Bob,25

Çıkış

<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <name>Alice</name>
    <age>30</age>
  </row>
  <row>
    <name>Bob</name>
    <age>25</age>
  </row>
</rows>

Her CSV satırı bir <row> öğesi haline gelir ve her sütun, başlığın adını taşıyan bir alt etiket haline gelir — bu XML'i tekrar "XML → CSV"'den geçirmek, orijinal iki sütunlu tabloyu yeniden oluşturur.

Pratik ipuçları

  • XML bekleyen eski bir sisteme veya SOAP API'sine veri beslemek: önce CSV dışa aktarımınızı burada dönüştürün, ardından elde edilen XML'i doğrudan hedef sisteme yapıştırın.
  • Aldığınız bir XML dışa aktarımını denetlemek: tam bir XML düzenleyicisine ihtiyaç duymadan hızlı, okunabilir bir tablo görünümü elde etmek için XML → CSV'yi çalıştırın.
  • XML'iniz düz bir <row><sütun> yapısı yerine derinlemesine iç içe geçmiş öğeler kullanıyorsa, bu araç rastgele iç içe geçmeyi düzleştirmez — her biri basit sütun öğeleri içeren tek bir satır öğeleri düzeyi bekler.

Neden elle yazılmış bir XML okuyucusu yerine DOMParser

XML'in, iç içe geçmiş öğeler, öznitelik tırnaklama, &, <, > gibi karakterler için kaçış işlemi gibi gerçek yapısal kuralları vardır ve hızlı, regex tabanlı bir ayrıştırıcı, en basit girdi dışında herhangi bir şeyde bunları hafifçe yanlış işleme eğilimindedir. Tarayıcının yerel DOMParser API'sini kullanmak, bu aracın XML ayrıştırmayı sıfırdan yeniden uygulamak yerine, tarayıcının kendisinin XML belgelerini görüntülemek için kullandığı standartlara uygun aynı XML motoruna dayandığı anlamına gelir. Bu aynı zamanda hatalı biçimlendirilmiş XML'in — kapatılmamış bir etiket, başıboş bir açı ayracı — sessizce bozuk veya eksik bir CSV üretmek yerine net bir ayrıştırma hatası olarak ortaya çıkacağı anlamına gelir.

Sıkça Sorulan Sorular

Virgül veya tırnak içeren CSV değerlerini doğru şekilde işler mi?

Evet. CSV ayrıştırıcısı, tırnaklı bir alanın içinde olup olmadığını takip eden gerçek bir durum makinesi ayrıştırıcısıdır, bu yüzden tırnaklar içindeki virgüller ve satır sonları (örneğin "Smith, John") ve gerçek bir tırnak karakterini kaçış karakteriyle işlemek için kullanılan ikiye katlanmış tırnakların hepsi doğru şekilde işlenir — her virgülde basitçe bölmez.

XML nasıl ayrıştırılıyor — özel bir regex ayrıştırıcısı mı?

Hayır. XML → CSV, XML'i gerçek bir belge ağacına ayrıştırmak için tarayıcının yerel DOMParser API'sini kullanır; tarayıcının herhangi bir XML belgesini ayrıştırdığı yöntemin aynısıdır. Bu, hatalı biçimlendirilmiş XML'in, elle yazılmış bir regex ayrıştırıcısının yapabileceği gibi sessizce yanlış çıktı üretmek yerine tespit edilip hata olarak bildirileceği anlamına gelir.

Geçerli XML etiketleri olmayan sütun adlarına ne olur?

Bir harf, rakam, alt çizgi, tire veya nokta olmayan her şey alt çizgiyle değiştirilir ve isim aksi takdirde bir rakam veya noktalama işaretiyle başlayacaksa başına bir alt çizgi eklenir — çünkü XML öğe adları, bir CSV başlığının yapabileceği gibi bir sayıyla başlayamaz veya boşluk içeremez.

Verilerim bir sunucuya yükleniyor mu?

Hayır. Her iki dönüştürme yönü de tamamen tarayıcınızda JavaScript olarak, tarayıcının kendi XML ayrıştırma motoru kullanılarak çalışır — hiçbir şey hiçbir yere gönderilmez, bu da dışa aktarılan işletme veya müşteri verileriyle kullanımını güvenli hale getirir.

CSV → XML → CSV dönüştürmek bana tam olarak başladığım şeyi verir mi?

Tutarlı bir sütun kümesine sahip iyi biçimlendirilmiş CSV için evet — gidiş-dönüş değerleri korur. Orijinal CSV'niz satırlar arasında tutarsız sütunlara veya başlık adlarında alışılmadık karakterlere sahipse, temizlenmiş etiket adları, başlığın tam yazımının mükemmel şekilde korunmayabileceği anlamına gelir, ancak veri değerleri korunur.

İlgili Araçlar