आपके डिवाइस पर चलता है · आपकी फ़ाइल कभी आपके डिवाइस से बाहर नहीं जाती।
दोहराए गए रिकॉर्ड वाली XML फ़ाइल डालिए — <records><record>…</record>…</records>, कोई RSS फ़ीड, डेटाबेस का एक्सपोर्ट — और हर रिकॉर्ड की एक पंक्ति वाला CSV पाइए। दस्तावेज़ ब्राउज़र के XML पार्सर से पढ़ा जाता है, फिर दोहराए गए एलिमेंट की सबसे लंबी लिस्ट अपने आप ढूँढ़ी जाती है, उसे चाहे जो लपेटे हो — आवरण पर कोई एट्रिब्यूट, या आइटम के बगल में फ़ीड का अपना title और link — और नतीजे की पंक्ति बताती है कि कौन सी लिस्ट ली गई।
हर रिकॉर्ड "JSON को CSV में बदलें" टूल की तरह ही सपाट किया जाता है: नेस्टेड एलिमेंट डॉट वाले कॉलम बनते हैं (address.city), एट्रिब्यूट @ लगे कॉलम (@id), भीतर के जिन दोहराए गए एलिमेंट के अपने चाइल्ड हैं वे नंबर वाले कॉलम (line.0.sku), सिर्फ़ टेक्स्ट वाले दोहराए गए एलिमेंट सेमीकोलन से जुड़कर एक सेल (a;b), और हेडर पंक्ति में मिला हर कॉलम होता है। मान ठीक वैसे लिखे जाते हैं जैसे XML में हैं। कॉमा, उद्धरण या लाइन ब्रेक वाले फ़ील्ड RFC 4180 के अनुसार उद्धृत होते हैं।
CSV UTF-8 में है, Excel के लिए वैकल्पिक BOM के साथ; विभाजक आप चुनते हैं और डाउनलोड से पहले पहली 200 पंक्तियों का पूर्वावलोकन देख सकते हैं। कुछ अपलोड नहीं होता।
इनके लिए नहीं: रिकॉर्ड की कई लिस्ट वाले दस्तावेज़ — सिर्फ़ सबसे लंबी लिस्ट पंक्तियाँ बनती है; किसी दूसरी के लिए पहले JSON में बदलिए, वह लिस्ट कॉपी कीजिए और "JSON को CSV में बदलें" से बदलिए।
पंक्तियाँ रूट के नीचे कहीं भी दोहराए गए एलिमेंट की सबसे लंबी लिस्ट होती हैं, उसे चाहे जो लपेटे हो। <records count="2"><record>…</record><record>…</record></records> से हर <record> की एक पंक्ति बनती है, भले आवरण पर एट्रिब्यूट हो। RSS फ़ीड से हर <item> की एक पंक्ति बनती है, title, link और pubDate जैसे कॉलम के साथ, भले चैनल का अपना title और link आइटम के बगल में हों। नतीजे के नीचे की पंक्ति बताती है कि कौन सी लिस्ट ली गई, जैसे rss.channel.item।
उस लिस्ट के बगल के मान, जैसे फ़ीड का अपना title, किसी रिकॉर्ड का हिस्सा नहीं हैं और छोड़ दिए जाते हैं। जब दस्तावेज़ में रिकॉर्ड की कई लिस्ट हों, तो सिर्फ़ सबसे लंबी पंक्तियाँ बनती है। किसी दूसरी लिस्ट के लिए फ़ाइल को /xml-to-json से बदलिए, वह लिस्ट उसके [ से ] तक कॉपी कीजिए, और उसे /json-to-csv में पेस्ट करके बदलिए।
कोई दोहराया एलिमेंट न हो तो वही अकेला रिकॉर्ड एक पंक्ति है, और उसके कॉलम उसके अपने फ़ील्ड के नाम हैं: <records><record><name>Rahul</name><city>Pune</city></record></records> से name और city कॉलम बनते हैं। इसलिए जो फ़ाइल कभी एक और कभी कई रिकॉर्ड रखती है, उसका हेडर वही रहता है — यह तब मायने रखता है जब कोई दूसरा प्रोग्राम कॉलम को नाम से पढ़ता है।
मान ठीक वैसे लिखे जाते हैं जैसे XML में हैं: 1.50 वैसा ही 1.50 रहता है, TRUE वैसा ही TRUE, और NULL वाला एलिमेंट टेक्स्ट NULL देता है, जबकि ख़ाली एलिमेंट ख़ाली सेल देता है। 007 अपने शून्य रखता है, और तारीख़ें जैसी लिखी हैं वैसी रहती हैं। जो मान =, +, - या @ से शुरू होता है, उसके आगे एक एपॉस्ट्रॉफ़ी लगती है, जैसे /json-to-csv पर, ताकि स्प्रेडशीट उसे फ़ॉर्मूले की तरह न चलाए।
सिर्फ़ टेक्स्ट वाले दोहराए गए चाइल्ड एलिमेंट एक सेल में सेमीकोलन से जुड़ते हैं, इसलिए दो <tag> एलिमेंट a;b देते हैं। जिन दोहराए गए चाइल्ड एलिमेंट के अपने चाइल्ड हैं, उन्हें line.0.sku और line.1.sku जैसे नंबर वाले कॉलम मिलते हैं। नेमस्पेस प्रीफ़िक्स कॉलम के नाम में रहते हैं, जैसे soap:Body.price। चाइल्ड एलिमेंट के बगल में रखा टेक्स्ट #text कॉलम में जाता है, पर उनके बीच अपनी जगह के बिना। फ़ाइल उस एन्कोडिंग में पढ़ी जाती है जो उसकी पहली लाइन घोषित करती है।
यह पेज अन्य भाषाओं में: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা