ToolDeck

CSV to XML

CSV डेटा को XML फ़ॉर्मैट में बदलें

उदाहरण देखें

CSV इनपुट

XML आउटपुट

स्थानीय रूप से चलता है · सीक्रेट पेस्ट करना सुरक्षित है
XML आउटपुट यहाँ दिखेगा…

CSV से XML रूपांतरण क्या है?

CSV से XML रूपांतरण, comma-separated values को Extensible Markup Language (XML) दस्तावेज़ों में बदलता है। CSV की प्रत्येक पंक्ति एक XML तत्व बनती है, और प्रत्येक कॉलम हेडर एक child element tag name से संबद्ध होता है। परिणाम एक श्रेणीबद्ध, स्व-वर्णनात्मक दस्तावेज़ होता है जिसे प्रणालियाँ किसी स्कीमा (XSD या DTD) के विरुद्ध सत्यापित कर सकती हैं और XSLT, XPath, तथा SAX/DOM पार्सर जैसे मानक XML उपकरणों से संसाधित कर सकती हैं।

XML, W3C द्वारा 1998 में XML 1.0 विनिर्देश प्रकाशित होने के बाद से डेटा आदान-प्रदान का एक मानक रहा है। हालाँकि JSON ने कई web API में XML का स्थान ले लिया है, फिर भी XML, SOAP वेब सेवाओं, RSS/Atom फ़ीड, SVG ग्राफ़िक्स, Office Open XML दस्तावेज़ों (.docx, .xlsx), Android संसाधन फ़ाइलों, Maven/Gradle बिल्ड कॉन्फ़िगरेशन, तथा स्वास्थ्य सेवा (HL7 CDA), वित्त (FpML, XBRL), और सरकारी क्षेत्र (NIEM) जैसे विनियमित उद्योगों में आवश्यक फ़ॉर्मैट बना हुआ है। जब स्रोत डेटा किसी स्प्रेडशीट या डेटाबेस निर्यात के रूप में हो, तो CSV-से-XML रूपांतरण उसे इन प्रणालियों में लाने का तरीका है।

एक सही CSV से XML कनवर्टर को RFC 4180 के विशेष मामलों को संभालना होता है: अल्पविराम या नई लाइन वाले उद्धृत फ़ील्ड, escaped double quotes, और भिन्न सीमांकक। XML पक्ष पर, इसे पाँच पूर्वनिर्धारित XML entities (& < > " ') को escape करना होता है, हेडर से valid element names बनाने होते हैं (रिक्त स्थान और विशेष वर्णों को बदलकर), और उचित XML घोषणा और सुसंगत encoding के साथ well-formed आउटपुट उत्पन्न करना होता है।

CSV से XML कनवर्टर का उपयोग क्यों करें?

स्प्रेडशीट डेटा से हाथ से XML लिखना धीमा और error-prone है। एक closing tag भूलना या ampersand को escape न करना invalid XML बनाता है जो अगले पार्सर को विफल कर देता है। यह कनवर्टर पार्सिंग, escaping, और तत्व निर्माण को एक ही चरण में संभालता है।

ब्राउज़र में तुरंत रूपांतरण करें
CSV चिपकाएँ और उचित घोषणा, रूट तत्व, और नेस्टेड child elements के साथ well-formed XML आउटपुट पाएं। कोई command-line उपकरण या लाइब्रेरी इंस्टॉल करने की आवश्यकता नहीं।
🔒
डेटा को निजी रखें
सभी रूपांतरण JavaScript का उपयोग करके आपके ब्राउज़र में locally होता है। आपका CSV डेटा कभी भी किसी सर्वर पर अपलोड नहीं होता, कभी log नहीं किया जाता, और आपकी मशीन के बाहर कहीं store नहीं होता।
🎯
valid, well-formed XML बनाएं
आउटपुट XML entities को escape करता है, हेडर नामों को valid element tags में sanitize करता है, और उचित रूप से नेस्टेड markup उत्पन्न करता है जो किसी भी XML सत्यापक या linter से पास हो जाता है।
📋
किसी भी CSV प्रारूप को संभालें
अल्पविराम, अर्धविराम, टैब और पाइप को delimiter के रूप में automatically पहचानता है। RFC 4180 quoting नियमों का समर्थन करता है जिसमें escaped double quotes, बहु-पंक्ति फ़ील्ड और BOM-prefixed UTF-8 फ़ाइलें शामिल हैं।

CSV से XML के उपयोग के मामले

SOAP और पुरानी API एकीकरण
कई एंटरप्राइज़ प्रणालियाँ अभी भी SOAP वेब सेवाओं का उपयोग करती हैं जिनके लिए XML अनुरोध बॉडी आवश्यक है। अनुरोध भेजने से पहले CSV डेटा निर्यात को XML पेलोड में बदलें जो सेवा के WSDL स्कीमा से मेल खाता हो।
बिल्ड कॉन्फ़िगरेशन फ़ाइलें बनाएं
निर्भरताओं, स्ट्रिंग्स, या कॉन्फ़िगरेशन प्रविष्टियों की स्प्रेडशीट से Maven pom.xml निर्भरता सूचियाँ, Android संसाधन फ़ाइलें, या Spring bean परिभाषाएँ बनाएं। एकल CSV स्रोत से XML कॉन्फ़िगरेशन का बैच उत्पादन करें।
डेटा पाइपलाइन ETL
डेटाबेस या विश्लेषण उपकरणों से CSV निर्यात को XML-आधारित ETL पाइपलाइनों में डालें। Apache NiFi, Talend, और SSIS जैसे उपकरण उन रूपांतरण कार्यप्रवाहों के लिए XML इनपुट स्वीकार करते हैं जिनमें प्रत्येक चरण पर स्कीमा सत्यापन आवश्यक होता है।
विनियामक और अनुपालन रिपोर्टिंग
स्वास्थ्य सेवा (HL7 CDA), वित्त (XBRL, FpML), और सरकारी क्षेत्र (NIEM) जैसे उद्योग XML-फ़ॉर्मैटेड प्रस्तुतियाँ अनिवार्य करते हैं। प्रस्तुत करने से पहले सारणीबद्ध अनुपालन डेटा को आवश्यक XML संरचना में बदलें।
RSS और Atom फ़ीड निर्माण
लेखों, शीर्षकों और तिथियों की CSV सूची को RSS 2.0 या Atom फ़ीड में बदलें। सामग्री प्रबंधन कार्यप्रवाह अक्सर पोस्ट की स्प्रेडशीट से शुरू होते हैं जिन्हें syndication फ़ीड के रूप में प्रकाशित करना होता है।
XML मूल तत्व सिखाना
XML सीखने वाले छात्र परिचित CSV डेटा चिपकाकर परिणामी तत्व पदानुक्रम, नेस्टिंग, और entity escaping देख सकते हैं। इनपुट और आउटपुट की तुलना करने से well-formedness और validity जैसी अमूर्त अवधारणाएँ ठोस बन जाती हैं।

CSV से XML मैपिंग संदर्भ

CSV फ़ाइल का प्रत्येक भाग XML संरचना में किस प्रकार मैप होता है, यह समझना आपको आउटपुट फ़ॉर्मैट का अनुमान लगाने और रूपांतरण से पहले अपने डेटा को समायोजित करने में सहायता करता है।

CSV अवधारणाXML समकक्षविवरण
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 बनाम XML

CSV एक सपाट, सीमांकक-आधारित फ़ॉर्मैट है जिसमें कोई अंतर्निहित स्कीमा या डेटा प्रकार नहीं होते। XML एक श्रेणीबद्ध, स्व-वर्णनात्मक markup language है जो स्कीमा, नेमस्पेस और जटिल नेस्टिंग का समर्थन करती है। इनमें से किसे चुनना है यह आपकी अगली प्रणाली की आवश्यकताओं पर निर्भर करता है।

CSV
सादा पाठ, प्रति पंक्ति एक रिकॉर्ड। कोई डेटा प्रकार नहीं: प्रत्येक मान एक स्ट्रिंग है। कोई पदानुक्रम या नेस्टिंग नहीं। न्यूनतम फ़ाइल आकार। स्प्रेडशीट, डेटाबेस और scripting भाषाओं द्वारा सार्वभौमिक रूप से समर्थित। RFC 4180 द्वारा परिभाषित। उन प्रणालियों के बीच सरल सारणीबद्ध डेटा स्थानांतरण के लिए सर्वोत्तम जो दोनों कॉलम संरचना समझते हों।
XML
opening और closing tags के साथ श्रेणीबद्ध markup। attributes, namespaces, mixed content, और CDATA sections का समर्थन करता है। XSD या DTD स्कीमा के विरुद्ध सत्यापित किया जा सकता है। XSLT, XPath, SAX, और DOM पार्सर द्वारा संसाधित। tag overhead के कारण CSV से बड़ा फ़ाइल आकार। SOAP API, Office Open XML, RSS/Atom, और कई विनियमित उद्योगों के लिए आवश्यक।

कोड उदाहरण

नीचे विभिन्न भाषाओं में CSV से XML रूपांतरण के कार्यशील उदाहरण दिए गए हैं। प्रत्येक उदाहरण CSV हेडर पंक्ति को element tag names के रूप में पार्स करता है, प्रत्येक डेटा पंक्ति को एक container element में लपेटता है, और cell सामग्री में XML entities को escape करता है।

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

अक्सर पूछे जाने वाले प्रश्न

CSV से XML रूपांतरण कैसे काम करता है?
कनवर्टर आपकी CSV की पहली पंक्ति को कॉलम हेडर के रूप में पढ़ता है। प्रत्येक अगली पंक्ति एक XML तत्व बनती है, और प्रत्येक cell मान को उसके कॉलम हेडर के नाम वाले child element में लपेटा जाता है। परिणाम एक well-formed XML दस्तावेज़ होता है जिसमें एक रूट तत्व और प्रत्येक डेटा पंक्ति के लिए एक child element होता है।
मेरे CSV डेटा में & और < जैसे विशेष वर्णों का क्या होता है?
कनवर्टर पाँच XML पूर्वनिर्धारित entities को escape करता है: & &amp;amp; बन जाता है, &lt; &amp;lt; बन जाता है, &gt; &amp;gt; बन जाता है, " &amp;quot; बन जाता है, और ' &amp;apos; बन जाता है। इससे valid XML बनता है जो पार्सर को विफल नहीं करेगा और well-formedness संबंधी कोई त्रुटि नहीं आएगी।
क्या मैं रूट और पंक्ति तत्वों के लिए कस्टम टैग नाम उपयोग कर सकता हूँ?
हाँ। यह टूल आपको रूट तत्व का नाम (डिफ़ॉल्ट: "data") और पंक्ति तत्व का नाम (डिफ़ॉल्ट: "row") सेट करने देता है। CSV के कॉलम हेडर हमेशा child element names बनते हैं। यदि किसी हेडर में रिक्त स्थान या ऐसे वर्ण हों जो XML element names में अमान्य हों, तो उपकरण उन्हें स्वचालित रूप से शुद्ध करता है।
CSV से XML और CSV से JSON में क्या अंतर है?
CSV से XML एक श्रेणीबद्ध markup दस्तावेज़ उत्पन्न करता है जिसमें opening/closing tags, XML घोषणा, और स्कीमा सत्यापन (XSD/DTD) का समर्थन होता है। CSV से JSON एक हल्का key-value ऑब्जेक्ट का ऐरे उत्पन्न करता है। XML का उपयोग तब करें जब आपकी लक्ष्य प्रणाली इसकी माँग करे (SOAP API, विनियमित फ़ॉर्मैट, RSS फ़ीड)। REST API, JavaScript फ्रंटएंड, और NoSQL डेटाबेस के लिए JSON का उपयोग करें।
बनाए गए XML आउटपुट को कैसे सत्यापित करें?
well-formedness जाँचने के लिए (सही नेस्टिंग, उचित entity escaping, मिलान करने वाले tags) आउटपुट को किसी भी XML सत्यापक में चिपकाएँ। स्कीमा सत्यापन के लिए, एक XSD फ़ाइल प्रदान करें और xmllint, Xerces, या किसी ऑनलाइन XSD सत्यापक जैसे उपकरण का उपयोग करें। इस उपकरण से बना XML हमेशा well-formed होता है, लेकिन स्कीमा वैधता इस बात पर निर्भर करती है कि संरचना आपके लक्ष्य स्कीमा से मेल खाती है या नहीं।
क्या कनवर्टर बड़ी CSV फ़ाइलों को संभाल सकता है?
यह टूल आपके ब्राउज़र में चलता है, इसलिए प्रदर्शन उपलब्ध मेमोरी पर निर्भर करता है। कुछ मेगाबाइट तक की फ़ाइलें (दसों हज़ार पंक्तियाँ) आधुनिक हार्डवेयर पर बिना किसी समस्या के परिवर्तित हो जाती हैं। बहुत बड़ी फ़ाइलों (100MB+) के लिए, Python के csv और xml.etree मॉड्यूल या Go के encoding/csv और encoding/xml पैकेज जैसे command-line उपकरणों पर विचार करें, जो सब कुछ मेमोरी में लोड किए बिना डेटा को स्ट्रीम के रूप में संसाधित करते हैं।
क्या बनाया गया XML, XSLT रूपांतरणों के साथ संगत है?
हाँ। आउटपुट घोषणा और सुसंगत तत्व संरचना के साथ मानक well-formed XML है। आप इसे HTML, किसी अन्य XML स्कीमा, या सादे पाठ में बदलने के लिए कोई भी XSLT stylesheet लागू कर सकते हैं। पूर्वानुमानित संरचना (root > row > field elements) XPath selectors और XSLT templates लिखना सरल बनाती है।