ToolDeck

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

CSV verilerini XML biçimine dönüştürün

Örnek dene

CSV Girişi

XML Çıktısı

Yerel olarak çalışır · Gizli bilgi yapıştırmak güvenlidir
XML çıktısı burada görünecek…

CSV'den XML'e Dönüşüm Nedir?

CSV'den XML'e dönüşüm, virgülle ayrılmış değerleri Genişletilebilir İşaretleme Dili (XML) belgelerine dönüştürür. CSV'nin her satırı bir XML öğesine, her sütun başlığı ise bir alt öğe etiketi adına dönüşür. Sonuç, sistemlerin bir şemaya (XSD veya DTD) karşı doğrulayabileceği ve XSLT, XPath ile SAX/DOM ayrıştırıcıları gibi standart XML araçlarıyla işleyebileceği hiyerarşik, kendini tanımlayan bir belgedir.

XML, W3C'nin 1998'de XML 1.0 belirtimini yayımlamasından bu yana bir veri alışveriş standardı olmuştur. JSON pek çok web API'sinde XML'in yerini almış olsa da XML; SOAP web servisleri, RSS/Atom beslemeleri, SVG grafikleri, Office Open XML belgeleri (.docx, .xlsx), Android kaynak dosyaları, Maven/Gradle yapı yapılandırmaları ve sağlık (HL7 CDA), finans (FpML, XBRL) ile kamu (NIEM) gibi düzenlenmiş sektörler için zorunlu biçim olmaya devam etmektedir. Kaynak verileriniz bir elektronik tablo veya veritabanı dışa aktarımıysa CSV'den XML'e dönüşüm bu sistemlere veri aktarmanın yoludur.

Doğru bir CSV'den XML'e dönüştürücü; tırnaklı alanlardaki virgülleri veya yeni satırları, kaçırılmış çift tırnakları ve değişen ayırıcıları kapsayan RFC 4180 uç durumlarını ele almalıdır. XML tarafında ise beş önceden tanımlanmış XML varlığını kaçırmalı (&, <, >, ", '), başlıklardan geçerli öğe adları üretmeli (boşlukları ve özel karakterleri değiştirerek) ve uygun bir XML bildirimi ile tutarlı kodlama içeren iyi biçimlendirilmiş çıktı oluşturmalıdır.

Neden CSV'den XML'e Dönüştürücü Kullanmalısınız?

Elektronik tablo verilerinden XML'i elle yazmak yavaş ve hataya açıktır. Bir kapanış etiketinin eksikliği veya bir & işaretinin kaçırılmaması, sonraki ayrıştırıcıları bozan geçersiz XML üretir. Bu dönüştürücü, ayrıştırmayı, kaçırmayı ve öğe oluşturmayı tek adımda gerçekleştirir.

Tarayıcınızda anında dönüştürün
CSV yapıştırın, uygun bir bildirim, kök öğe ve iç içe alt öğeler içeren iyi biçimlendirilmiş XML çıktısı alın. Komut satırı aracı veya kütüphane kurulumu gerekmez.
🔒
Verilerinizi gizli tutun
Tüm dönüşüm, JavaScript kullanılarak tarayıcınızda yerel olarak çalışır. CSV verileriniz hiçbir zaman bir sunucuya yüklenmez, günlüğe kaydedilmez ve makinenizin dışında hiçbir yerde saklanmaz.
🎯
Geçerli, iyi biçimlendirilmiş XML üretin
Çıktı; XML varlıklarını kaçırır, başlık adlarını geçerli öğe etiketlerine dönüştürür ve herhangi bir XML doğrulayıcı veya lint aracından geçen düzgün iç içe işaretleme üretir.
📋
Her CSV biçimini destekler
Virgül, noktalı virgül, sekme ve pipe karakterlerini ayırıcı olarak otomatik algılar. Kaçırılmış çift tırnaklar, çok satırlı alanlar ve BOM önekli UTF-8 dosyaları dahil RFC 4180 tırnaklama kurallarını destekler.

CSV'den XML'e Kullanım Senaryoları

SOAP ve eski API entegrasyonu
Pek çok kurumsal sistem, XML istek gövdeleri gerektiren SOAP web servislerini kullanmaya devam etmektedir. İstek göndermeden önce bir CSV veri dışa aktarımını servisin WSDL şemasına uyan XML yüklerine dönüştürün.
Yapı yapılandırma dosyaları oluşturma
Bir bağımlılık, dize veya yapılandırma girişleri elektronik tablosundan Maven pom.xml bağımlılık listeleri, Android kaynak dosyaları veya Spring bean tanımları oluşturun. Tek bir CSV kaynağından toplu olarak XML yapılandırmaları üretin.
Veri hattı ETL işlemi
Veritabanlarından veya analiz araçlarından alınan CSV dışa aktarımlarını XML tabanlı ETL hatlarına besleyin. Apache NiFi, Talend ve SSIS gibi araçlar, her aşamada şema doğrulaması gerektiren dönüşüm iş akışları için XML girişlerini kabul eder.
Düzenleyici ve uyumluluk raporlaması
Sağlık (HL7 CDA), finans (XBRL, FpML) ve kamu (NIEM) gibi sektörler XML biçimli sunumlar zorunlu kılmaktadır. Tablo biçimindeki uyumluluk verilerini göndermeden önce gerekli XML yapısına dönüştürün.
RSS ve Atom beslemesi oluşturma
Bir CSV makale, başlık ve tarih listesini RSS 2.0 veya Atom beslemesine dönüştürün. İçerik yönetimi iş akışları çoğunlukla bir dağıtım beslemesi olarak yayımlanması gereken yazıların elektronik tablosuyla başlar.
XML temellerini öğretme
XML öğrenen öğrenciler, tanıdık CSV verilerini yapıştırarak elde edilen öğe hiyerarşisini, iç içe yapıyı ve varlık kaçırmasını görebilir. Giriş ve çıktıyı karşılaştırmak, iyi biçimlendirilmişlik ve geçerlilik gibi soyut kavramları somutlaştırır.

CSV'den XML'e Eşleme Başvurusu

Bir CSV dosyasının her bölümünün XML yapısıyla nasıl eşleştiğini anlamak, çıktı biçimini öngörmenize ve verilerinizi dönüşümden önce düzenlemenize yardımcı olur.

CSV KavramıXML KarşılığıAyrıntılar
CSV fileXML documentThe entire file maps to a root element containing all records
Header rowElement tag namesEach column header becomes the tag name for child elements
Data row<row> elementEach row becomes a repeating child element of the root
Cell valueText nodeCell content becomes the text inside the corresponding tag
Empty cellEmpty element or omittedCan be rendered as <field/> or excluded from output
Comma delimiterXML structureDelimiters are replaced by element nesting and closing tags

CSV ve XML Karşılaştırması

CSV, yerleşik şema veya veri türleri olmayan düz, ayırıcı tabanlı bir biçimdir. XML ise şemaları, ad alanlarını ve karmaşık iç içe yapıyı destekleyen hiyerarşik, kendini tanımlayan bir işaretleme dilidir. İkisi arasındaki seçim, kullandığınız sistemin gereksinimlerine bağlıdır.

CSV
Düz metin, satır başına bir kayıt. Veri türü yok: her değer dizedir. Hiyerarşi veya iç içe yapı yok. Minimum dosya boyutu. Elektronik tablolar, veritabanları ve komut dosyası dilleri tarafından evrensel olarak desteklenir. RFC 4180 ile tanımlanmıştır. Sütun düzenini her iki tarafın da anladığı sistemler arasında basit tablo veri aktarımı için idealdir.
XML
Açma ve kapama etiketleriyle hiyerarşik işaretleme. Nitelikleri, ad alanlarını, karışık içeriği ve CDATA bölümlerini destekler. XSD veya DTD şemalarına karşı doğrulanabilir. XSLT, XPath, SAX ve DOM ayrıştırıcılarıyla işlenir. Etiket ek yükü nedeniyle CSV'den daha büyük dosya boyutu. SOAP API'leri, Office Open XML, RSS/Atom ve pek çok düzenlenmiş sektör tarafından zorunlu kılınmaktadır.

Kod Örnekleri

Aşağıda farklı dillerde CSV'den XML'e dönüşümün çalışan örnekleri yer almaktadır. Her örnek, CSV başlık satırını öğe etiketi adları olarak ayrıştırır, her veri satırını bir kapsayıcı öğeye sarar ve hücre içeriğindeki XML varlıklarını kaçırır.

JavaScript (browser / Node.js)
// CSV string → XML with proper escaping
const csv = `name,age,city
Alice,30,Berlin
Bob,25,Tokyo`

function csvToXml(csv, rootTag = 'data', rowTag = 'row') {
  const rows = csv.trim().split('\n').map(r => r.split(','))
  const [headers, ...data] = rows
  const xmlRows = data.map(row => {
    const fields = headers.map((h, i) => {
      const val = (row[i] || '').replace(/&/g, '&amp;')
        .replace(/</g, '&lt;').replace(/>/g, '&gt;')
      return `    <${h}>${val}</${h}>`
    }).join('\n')
    return `  <${rowTag}>\n${fields}\n  </${rowTag}>`
  }).join('\n')
  return `<?xml version="1.0" encoding="UTF-8"?>\n<${rootTag}>\n${xmlRows}\n</${rootTag}>`
}

console.log(csvToXml(csv))
// → <?xml version="1.0" encoding="UTF-8"?>
// → <data><row><name>Alice</name><age>30</age>...</row>...</data>
Python
import csv, io
from xml.etree.ElementTree import Element, SubElement, tostring
from xml.dom.minidom import parseString

csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""

reader = csv.DictReader(io.StringIO(csv_string))
root = Element('data')

for row in reader:
    row_el = SubElement(root, 'row')
    for key, value in row.items():
        child = SubElement(row_el, key)
        child.text = value

# Pretty-print with declaration
raw = tostring(root, encoding='unicode')
pretty = parseString(raw).toprettyxml(indent='  ')
print(pretty)
# → <?xml version="1.0" ?>
# → <data>
# →   <row>
# →     <name>Alice</name>
# →     <age>30</age>
# →     <city>Berlin</city>
# →   </row>
# →   ...
# → </data>
Go
package main

import (
	"encoding/csv"
	"encoding/xml"
	"fmt"
	"os"
	"strings"
)

type Field struct {
	XMLName xml.Name
	Value   string `xml:",chardata"`
}

type Row struct {
	XMLName xml.Name `xml:"row"`
	Fields  []Field
}

type Data struct {
	XMLName xml.Name `xml:"data"`
	Rows    []Row
}

func main() {
	input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
	r := csv.NewReader(strings.NewReader(input))
	records, _ := r.ReadAll()
	headers := records[0]

	var data Data
	for _, rec := range records[1:] {
		row := Row{}
		for i, h := range headers {
			row.Fields = append(row.Fields, Field{
				XMLName: xml.Name{Local: h},
				Value:   rec[i],
			})
		}
		data.Rows = append(data.Rows, row)
	}

	out, _ := xml.MarshalIndent(data, "", "  ")
	fmt.Println(xml.Header + string(out))
	// → <?xml version="1.0" encoding="UTF-8"?>
	// → <data><row><name>Alice</name>...</row>...</data>
}
CLI (csvkit / xmlstarlet)
# Using Python's csv and xml modules via one-liner
python3 -c "
import csv, sys
from xml.etree.ElementTree import Element, SubElement, tostring
from xml.dom.minidom import parseString

reader = csv.DictReader(sys.stdin)
root = Element('data')
for row in reader:
    r = SubElement(root, 'row')
    for k, v in row.items():
        SubElement(r, k).text = v
print(parseString(tostring(root, encoding='unicode')).toprettyxml(indent='  '))
" < data.csv

# Using Miller (mlr) — a dedicated CSV/JSON/XML tool
mlr --icsv --oxml cat data.csv

Sıkça Sorulan Sorular

CSV'den XML'e dönüşüm nasıl çalışır?
Dönüştürücü, CSV'nizin ilk satırını sütun başlıkları olarak okur. Sonraki her satır bir XML öğesine dönüşür; her hücre değeri, sütun başlığından adını alan bir alt öğeye sarılır. Sonuç, veri satırı başına bir alt öğe içeren iyi biçimlendirilmiş bir XML belgesidir.
CSV verilerindeki & ve < gibi özel karakterlere ne olur?
Dönüştürücü, beş önceden tanımlanmış XML varlığını kaçırır: & yerine &amp;, < yerine &lt;, > yerine &gt;, " yerine &quot; ve ' yerine &apos; kullanılır. Bu, ayrıştırıcıları bozmayan veya iyi biçimlendirilmişlik hatalarına yol açmayan geçerli XML üretir.
Kök ve satır öğeleri için özel etiket adları kullanabilir miyim?
Evet. Araç, kök öğe adını (varsayılan: "data") ve satır öğesi adını (varsayılan: "row") ayarlamanıza olanak tanır. CSV'deki sütun başlıkları her zaman alt öğe adları olur. Bir başlık boşluk veya XML öğe adlarında geçersiz karakterler içeriyorsa araç bunları otomatik olarak temizler.
CSV'den XML'e ve CSV'den JSON'a dönüşüm arasındaki fark nedir?
CSV'den XML'e dönüşüm; açma/kapama etiketleri, bir XML bildirimi ve şema doğrulaması (XSD/DTD) desteği içeren hiyerarşik bir işaretleme belgesi üretir. CSV'den JSON'a dönüşüm ise daha hafif bir anahtar-değer nesneleri dizisi üretir. Hedef sisteminiz bunu gerektirdiğinde XML kullanın (SOAP API'leri, düzenlenmiş biçimler, RSS beslemeleri). REST API'leri, JavaScript ön yüzleri ve NoSQL veritabanları için JSON kullanın.
Oluşturulan XML çıktısını nasıl doğrularım?
Çıktıyı herhangi bir XML doğrulayıcıya yapıştırarak iyi biçimlendirilmişliği (doğru iç içe yapı, uygun varlık kaçırma, eşleşen etiketler) kontrol edin. Şema doğrulaması için bir XSD dosyası sağlayın ve xmllint, Xerces veya çevrimiçi bir XSD doğrulayıcı gibi bir araç kullanın. Bu araç tarafından üretilen XML her zaman iyi biçimlendirilmiştir; ancak şema geçerliliği, yapının hedef şemanızla eşleşip eşleşmediğine bağlıdır.
Dönüştürücü büyük CSV dosyalarını işleyebilir mi?
Araç tarayıcınızda çalıştığından performans, kullanılabilir belleğe bağlıdır. Birkaç megabayta kadar olan dosyalar (on binlerce satır) modern donanımda sorunsuz dönüşür. Çok büyük dosyalar (100 MB+) için Python'ın csv ve xml.etree modülleri veya Go'nun encoding/csv ve encoding/xml paketleri gibi her şeyi belleğe yüklemeden veriyi akış olarak işleyen bir komut satırı aracı kullanmayı düşünün.
Oluşturulan XML, XSLT dönüşümleriyle uyumlu mudur?
Evet. Çıktı, bir bildirim ve tutarlı öğe yapısına sahip standart iyi biçimlendirilmiş XML'dir. Herhangi bir XSLT stil sayfasını uygulayarak HTML'ye, başka bir XML şemasına veya düz metne dönüştürebilirsiniz. Öngörülebilir yapı (kök > satır > alan öğeleri), XPath seçicileri ve XSLT şablonları yazmayı kolaylaştırır.