XML Formatter

XML को सिंटैक्स हाइलाइटिंग के साथ फ़ॉर्मेट और सुंदर ढंग से प्रदर्शित करें

उदाहरण देखें

XML इनपुट

फ़ॉर्मेट किया गया XML

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

XML फ़ॉर्मेटिंग क्या है?

XML फ़ॉर्मेटिंग (जिसे XML प्रिटी-प्रिंटिंग या XML beautification भी कहते हैं) वह प्रक्रिया है जिसमें किसी XML दस्तावेज़ में consistent इंडेंटेशन और लाइन ब्रेक जोड़े जाते हैं ताकि उसकी hierarchical structure साफ़ दिखाई दे सके। API, कॉन्फ़िगरेशन जनरेटर या serializers से मिलने वाला raw XML अक्सर टैगों के बीच कोई space नहीं होने के साथ एक ही लाइन में आता है। XML फ़ॉर्मेटर उस दस्तावेज़ को एक tree में parse करता है, फिर consistent spacing के साथ उसे फिर से serialize करता है।

XML 1.0 विनिर्देश (W3C अनुशंसा, पाँचवाँ संस्करण) एक कठोर व्याकरण परिभाषित करता है जिसमें प्रत्येक आरंभिक टैग का एक समापन टैग होना चाहिए या वह स्वयं-समाप्त होना चाहिए, विशेषताओं में उद्धरण चिह्न होने चाहिए, और पाँच वर्णों (<, >, &, ", ') के लिए entity escaping ज़रूरी है। एक फ़ॉर्मेटर को इन नियमों का पालन करते हुए केवल ऐसे रिक्त स्थान जोड़ने चाहिए जो दस्तावेज़ की सूचना-समुच्चय (infoset) को नहीं बदलते।

फ़ॉर्मेट किया गया XML कोड समीक्षा के दौरान पढ़ना आसान होता है, संस्करण नियंत्रण में अंतर निकालना सरल होता है, और जब कोई सेवा अप्रत्याशित डेटा लौटाती है तो डीबग करना सुगम होता है। फ़ॉर्मेटिंग क्रिया स्वयं में कोई हानि नहीं करती: दस्तावेज़ की तार्किक सामग्री अपरिवर्तित रहती है, केवल प्रस्तुति बदलती है। git diff और pull request review platforms केवल बदली हुई lines दिखाते हैं — consistently indented XML यह सुनिश्चित करता है कि वे differences असली changes दिखाएं, reformatting का noise नहीं।

Before · xml
After · xml
<catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><genre>Computer</genre><price>44.95</price><publish_date>2000-10-01</publish_date></book><book id="bk102"><author>Ralls, Kim</author><title>Midnight Rain</title><genre>Fantasy</genre><price>5.95</price><publish_date>2000-12-16</publish_date></book></catalog>
<catalog>
  <book id="bk101">
    <author>Gambardella, Matthew</author>
    <title>XML Developer's Guide</title>
    <genre>Computer</genre>
    <price>44.95</price>
    <publish_date>2000-10-01</publish_date>
  </book>
  <book id="bk102">
    <author>Ralls, Kim</author>
    <title>Midnight Rain</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2000-12-16</publish_date>
  </book>
</catalog>

ऑनलाइन XML फ़ॉर्मेटर क्यों उपयोग करें?

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

तत्काल प्रिटी-प्रिंट
XML चिपकाएं या टाइप करें और तुरंत indented output पाएं। कोई command-line tool install करने या build step चलाने की ज़रूरत नहीं।
🔒
गोपनीयता-प्रथम संसाधन
सभी पार्सिंग और फ़ॉर्मेटिंग आपके ब्राउज़र में DOMParser API का उपयोग करके होती है। आपका XML कभी भी आपके कंप्यूटर से बाहर नहीं जाता और किसी भी सर्वर पर नहीं भेजा जाता।
🎨
अनुकूलनीय इंडेंटेशन
2 स्पेस, 4 स्पेस, या टैब इंडेंटेशन में से चुनें ताकि आपके प्रोजेक्ट के कोडिंग मानकों से मेल खाए — बिना कॉन्फ़िगरेशन फ़ाइलें संपादित किए।
📋
कोई खाता या स्थापना आवश्यक नहीं
पृष्ठ खोलें, XML चिपकाएं, और परिणाम की प्रतिलिपि लें। कोई पंजीकरण फ़ॉर्म नहीं, कोई डेस्कटॉप सॉफ़्टवेयर नहीं, कोई ब्राउज़र एक्सटेंशन नहीं।

XML Formatter के उपयोग के मामले

फ्रंटएंड विकास
किसी CMS द्वारा लौटाए गए SVG मार्कअप या XHTML खंडों की जांच करें। कच्चे आउटपुट को फ़ॉर्मेट करने से विशिष्ट विशेषताएं और नेस्टेड समूह शीघ्रता से खोजे जा सकते हैं।
बैकएंड इंजीनियरिंग
तृतीय-पक्ष सेवाओं से SOAP प्रतिक्रियाएं, RSS फ़ीड, या XML-RPC पेलोड डीबग करें। सुंदर-मुद्रित आउटपुट आपको लुप्त एलिमेंट या गलत नेमस्पेस खोजने देता है।
DevOps और CI/CD
Maven pom.xml फ़ाइलें, Ant बिल्ड स्क्रिप्ट, या .csproj प्रोजेक्ट फ़ाइलें पढ़ें जो बिना इंडेंटेशन के मशीन-निर्मित हैं। अंतर स्वच्छ रखने के लिए प्रतिबद्ध करने से पहले उन्हें फ़ॉर्मेट करें।
QA और परीक्षण
एकीकरण परीक्षणों में अपेक्षित और वास्तविक XML पेलोड की तुलना करें। दोनों पक्षों को एक ही इंडेंटेशन शैली में फ़ॉर्मेट करने से रिक्त स्थान के अंतर के कारण होने वाले झूठे नकारात्मक परिणाम समाप्त होते हैं।
डेटा इंजीनियरिंग
डेटाबेस, ETL पाइपलाइन, या सरकारी खुले-डेटा पोर्टल से XML निर्यात की जांच करें। फ़ॉर्मेट किया गया XML XSLT रूपांतरण या XPath क्वेरी लिखने से पहले रिकॉर्ड संरचना प्रकट करता है।
XML सीखना
W3C XML ट्यूटोरियल पर काम करने वाले विद्यार्थी अभ्यास फ़ाइलें फ़ॉर्मेटर में चिपका सकते हैं ताकि यह सत्यापित हो सके कि उनकी नेस्टिंग और विशेषता सिंटैक्स सही है।

XML पूर्वपरिभाषित इकाई संदर्भ

XML अपनी सिंटैक्स के लिए पाँच वर्ण आरक्षित रखता है। जब ये वर्ण सामग्री या विशेषता मानों में शाब्दिक पाठ के रूप में प्रकट होते हैं, तो उन्हें पूर्वपरिभाषित इकाई संदर्भों से प्रतिस्थापित किया जाना चाहिए। एक सही फ़ॉर्मेटर प्रिटी-प्रिंटिंग के दौरान इन इकाइयों को सुरक्षित रखता है।

वर्णXML में भूमिकाइकाई
<Start of tag&lt;
>End of tag&gt;
&Start of entity&amp;
"Attribute delimiter&quot;
'Attribute delimiter&apos;

XML इंडेंटेशन शैलियों की तुलना

XML इंडेंटेशन का कोई एकल मानक नहीं है। चुनाव आपकी टीम की परंपराओं और आपकी पाइपलाइन के उपकरणों पर निर्भर करता है। यहाँ तीन सबसे सामान्य शैलियाँ हैं।

2 स्पेस (अनुशंसित)
वेब-संबंधित XML के लिए सबसे सामान्य विकल्प: SVG, XHTML, SOAP, Spring कॉन्फ़िगरेशन। गहरे नेस्टेड दस्तावेज़ों को संक्षिप्त रखता है। अधिकांश ऑनलाइन फ़ॉर्मेटर और IDE में यही डिफ़ॉल्ट होता है।
4 स्पेस
Java पारिस्थितिकी तंत्र (Maven, Ant, Android मेनिफेस्ट) में पसंद किया जाता है जहाँ फ़ाइलें शायद ही 3-4 स्तरों से अधिक नेस्टेड होती हैं। Java और C# कोड के डिफ़ॉल्ट इंडेंटेशन से मेल खाता है।
टैब वर्ण
प्रत्येक डेवलपर को अपने संपादक में अपनी दृश्य चौड़ाई निर्धारित करने देता है। पुरानी परियोजनाओं और कुछ Microsoft उपकरणों (.csproj, .nuspec) में सामान्य है। स्पेस की तुलना में छोटी फ़ाइल आकार उत्पन्न करता है।

कोड उदाहरण: XML को प्रोग्रामेटिक रूप से फ़ॉर्मेट करें

जब आपको किसी स्क्रिप्ट या निर्माण प्रक्रिया में XML फ़ॉर्मेट करना हो, तो प्रत्येक प्रमुख प्रोग्रामिंग भाषा में एक अंतर्निर्मित या मानक-लाइब्रेरी विकल्प उपलब्ध है। नीचे कार्यशील उदाहरण हैं जिन्हें आप सीधे प्रतिलिपि कर सकते हैं।

JavaScript (DOM API)
const raw = '<root><item>hello</item></root>'
const parser = new DOMParser()
const doc = parser.parseFromString(raw, 'application/xml')
const serializer = new XMLSerializer()
const xml = serializer.serializeToString(doc)

// Indent with XSLT (browser-native approach)
const xslt = new DOMParser().parseFromString(`
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="node()|@*">
      <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>
    </xsl:template>
  </xsl:stylesheet>`, 'application/xml')

const proc = new XSLTProcessor()
proc.importStylesheet(xslt)
const formatted = proc.transformToDocument(doc)
console.log(new XMLSerializer().serializeToString(formatted))
// → <root>\n  <item>hello</item>\n</root>
Python
import xml.dom.minidom

raw = '<root><item>hello</item><item>world</item></root>'
dom = xml.dom.minidom.parseString(raw)
print(dom.toprettyxml(indent='  '))
# → <?xml version="1.0" ?>
# → <root>
# →   <item>hello</item>
# →   <item>world</item>
# → </root>

# With lxml (handles namespaces, XSD, large files)
from lxml import etree
tree = etree.fromstring(raw.encode())
print(etree.tostring(tree, pretty_print=True).decode())
Go
package main

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

func formatXML(raw string) (string, error) {
    decoder := xml.NewDecoder(strings.NewReader(raw))
    var out strings.Builder
    encoder := xml.NewEncoder(&out)
    encoder.Indent("", "  ")
    for {
        tok, err := decoder.Token()
        if err != nil {
            break
        }
        encoder.EncodeToken(tok)
    }
    encoder.Flush()
    return out.String(), nil
}
// formatXML("<a><b>1</b></a>") → "<a>\n  <b>1</b>\n</a>"
CLI (xmllint)
# Format XML file with xmllint (part of libxml2, pre-installed on macOS/Linux)
xmllint --format input.xml > formatted.xml

# Format from stdin
echo '<a><b>1</b></a>' | xmllint --format -
# → <?xml version="1.0"?>
# → <a>
# →   <b>1</b>
# → </a>

# Validate and format at the same time
xmllint --format --schema schema.xsd input.xml

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

क्या XML फ़ॉर्मेट करने से दस्तावेज़ का अर्थ बदलता है?
नहीं। XML फ़ॉर्मेटिंग केवल टैगों के बीच असंगत रिक्त स्थान जोड़ती या हटाती है। XML सूचना-समुच्चय (infoset) अपरिवर्तित रहता है। एक अपवाद: यदि आपकी स्कीमा कुछ एलिमेंट पर xml:space="preserve" उपयोग करती है, तो फ़ॉर्मेटर उन एलिमेंट को अछूता छोड़ देता है, और यह उपकरण इसका पालन करता है।
XML फ़ॉर्मेटिंग और XML सत्यापन में क्या अंतर है?
फ़ॉर्मेटिंग XML को पठनीय बनाने के लिए इंडेंटेशन और लाइन ब्रेक जोड़ती है। सत्यापन जाँचता है कि दस्तावेज़ किसी स्कीमा (XSD, DTD, या RelaxNG) के अनुरूप है या नहीं। एक दस्तावेज़ well-formed हो सकता है लेकिन अपनी स्कीमा के हिसाब से invalid हो। पठनीयता के लिए इस फ़ॉर्मेटर का और स्कीमा अनुपालन के लिए XML Validator उपकरण का उपयोग करें।
क्या मैं नेमस्पेस वाला XML फ़ॉर्मेट कर सकता हूँ?
हाँ। ब्राउज़र का DOMParser XML नेमस्पेस को स्वाभाविक रूप से संभालता है। नेमस्पेस उपसर्ग, डिफ़ॉल्ट नेमस्पेस घोषणाएं (xmlns), और योग्य विशेषता नाम फ़ॉर्मेटिंग के दौरान सुरक्षित रहते हैं। फ़ॉर्मेटर कोई भी नेमस्पेस बाइंडिंग जोड़ता, हटाता या नाम नहीं बदलता।
ब्राउज़र में मैं कितनी बड़ी XML फ़ाइल फ़ॉर्मेट कर सकता हूँ?
ब्राउज़र-आधारित फ़ॉर्मेटिंग लगभग 10 MB तक के दस्तावेज़ों के लिए अच्छी तरह कार्य करती है। उससे अधिक पर, DOM वृक्ष काफी मेमोरी खपत करता है और UI अनुत्तरदायी हो सकता है। बहुत बड़ी फ़ाइलों के लिए xmllint --format जैसे command-line tools use करें, जो XML को stream के रूप में process करते हैं।
मेरे फ़ॉर्मेट किए गए XML में XML घोषणा क्यों जुड़ जाती है?
कुछ फ़ॉर्मेटर DOM वृक्ष को क्रमबद्ध करते समय <?xml version="1.0"?> पूर्वसंलग्न करते हैं। यह घोषणा XML 1.0 में वैकल्पिक है जब एन्कोडिंग UTF-8 हो। यदि आप इसे नहीं चाहते, तो आउटपुट से पहली पंक्ति हटा दें। यह घोषणा किसी भी अनुपालक XML प्रसंस्करणकर्ता द्वारा पार्सिंग को प्रभावित नहीं करती।
क्या XML फ़ॉर्मेटिंग और XML संक्षिप्तीकरण एक ही हैं?
ये विपरीत क्रियाएं हैं। फ़ॉर्मेटिंग पठनीयता सुधारने के लिए रिक्त स्थान जोड़ती है। संक्षिप्तीकरण फ़ाइल आकार कम करने के लिए सभी गैर-आवश्यक रिक्त स्थान हटाता है। दोनों क्रियाएं XML infoset के संबंध में कोई हानि नहीं करतीं। यदि आपको XML संक्षिप्त करना हो, तो XML Minifier उपकरण का उपयोग करें।
XML और HTML फ़ॉर्मेटिंग में क्या अंतर है?
XML कठोर है: प्रत्येक टैग बंद होना चाहिए, विशेषता मानों में उद्धरण चिह्न होने चाहिए, और दस्तावेज़ में ठीक एक मूल एलिमेंट होना चाहिए। HTML (विशेष रूप से HTML5) उदार है: वैकल्पिक समापन टैग, बिना उद्धरण चिह्न की विशेषताएं, और &lt;br&gt; जैसे रिक्त एलिमेंट सभी मान्य हैं। XML फ़ॉर्मेटर अमान्य XML अस्वीकार करेगा, जबकि HTML फ़ॉर्मेटर ऐसी सिंटैक्स सहन करता है जो XML अस्वीकार करता।