تبدیل XML به CSV

روی دستگاه شما اجرا می‌شود · فایل شما از دستگاهتان خارج نمی‌شود.

فایل XML با رکوردهای تکراری را رها کنید (<records><record>…</record>…</records>، یک فید RSS، خروجی یک پایگاه داده) و CSV با یک سطر برای هر رکورد بگیرید. سند با تجزیه‌گر XML مرورگر خوانده می‌شود و بلندترین فهرست عنصرهای تکراری خودکار پیدا می‌شود، هرچه دورش را گرفته باشد (صفتی روی عنصر پوشش، یا عنوان و پیوند خود فید کنار آیتم‌هایش) و خط نتیجه نام فهرستی را که به کار رفته می‌گوید.

هر رکورد همان‌طور که در ابزار JSON به CSV تخت می‌شود: عنصرهای تودرتو ستون‌های نقطه‌دار (address.city)، صفت‌ها ستون‌های با پیشوند @ (@id)، عنصرهای تکراری داخلی که خودشان فرزند دارند ستون‌های شماره‌دار (line.0.sku)، عنصرهای تکراری متنی با نقطه‌ویرگول در یک سلول (a;b)، و سطر عنوان اجتماع همهٔ ستون‌هاست. مقدارها دقیقاً همان‌طور که در XML هستند نوشته می‌شوند. فیلدهای دارای ویرگول، گیومه یا خط جدید طبق RFC 4180 نقل‌قول می‌شوند.

CSV با UTF-8 و نشانگر BOM اختیاری برای اکسل است، جداکننده را خودتان انتخاب می‌کنید و ۲۰۰ خط اول را پیش از دانلود می‌بینید. چیزی آپلود نمی‌شود.

راهنمای تبدیل XML به CSV

  1. فایل XML را رها کنید یا XML را در کادر بچسبانید.
  2. جداکنندهٔ خروجی و افزودن BOM اکسل را انتخاب کنید.
  3. روی «تبدیل به CSV» بزنید و پیش‌نمایش را ببینید.
  4. فایل .csv را دانلود کنید.

قالب‌های پشتیبانی‌شده و محدودیت‌ها

ورودی
XML (.xml)؛ فایل یا متن چسبانده‌شده، خوانده‌شده با کدگذاری‌ای که خودش اعلام می‌کند
خروجی
CSV، RFC 4180، UTF-8، BOM اختیاری
سطرها
بلندترین فهرست عنصرهای تکراری
تودرتو
عنصرهای فرزند ← ستون نقطه‌دار؛ صفت‌ها ← ستون @
محل اجرا
در مرورگر – بدون آپلود

مناسب نیست برای: سندهایی با چند فهرست رکورد: فقط بلندترین سطر می‌شود؛ برای فهرستی دیگر، سند را به JSON تبدیل کنید، همان فهرست را کپی کنید و با JSON به CSV تبدیلش کنید.

سطرها چطور پیدا می‌شوند

سطرها بلندترین فهرست عنصرهای تکراری در هر جای زیر ریشه‌اند، هرچه دورشان را گرفته باشد. <records count="2"><record>…</record><record>…</record></records> برای هر <record> یک سطر می‌دهد، با اینکه پوشش یک صفت دارد. فید RSS برای هر <item> یک سطر می‌دهد، با ستون‌هایی مثل title، link و pubDate، با اینکه عنوان و پیوند خود کانال کنار آیتم‌ها نشسته‌اند. سطر زیر نتیجه نام فهرست به‌کاررفته را می‌گوید، مثلاً rss.channel.item.

مقدارهای کنار آن فهرست، مثل عنوان خود فید، جزو هیچ رکوردی نیستند و کنار گذاشته می‌شوند. وقتی سند چند فهرست رکورد دارد، فقط بلندترین سطر می‌شود. برای فهرستی دیگر، فایل را با /xml-to-json تبدیل کنید، آن فهرست را از [ تا ] کپی کنید، در /json-to-csv بچسبانید و تبدیل کنید.

فایلی که فقط یک رکورد دارد

بدون عنصر تکراری، همان یک رکورد تنها سطر است و ستون‌هایش نام فیلدهای خودش: <records><record><name>Ali</name><city>Tehran</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 می‌رود، بدون جایگاهش میان آن‌ها. فایل با کدگذاری‌ای خوانده می‌شود که خط اولش اعلام می‌کند.

پرسش‌های متداول

از کجا می‌فهمد کدام عنصرها سطر هستند؟
بلندترین فهرست عنصرهای تکراری زیر ریشه را برمی‌دارد؛ پس <records><record>…</record></records> برای هر <record> یک سطر می‌دهد و فید RSS برای هر <item> یک سطر. مقدارهای کنار آن فهرست، مثل عنوان خود فید، کنار گذاشته می‌شوند. اگر عنصر تکراری نباشد، همان یک رکورد یک سطر می‌شود و نام فیلدهایش ستون‌ها.
آیا فایل من به سرور فرستاده می‌شود؟
نه. تبدیل به‌طور کامل در مرورگر و با توان دستگاه خودتان انجام می‌شود و فایل از رایانه یا گوشی شما بیرون نمی‌رود. هر ابزار پس از یک بار استفاده، بدون اینترنت هم کار می‌کند (ابزارهای ویدیو، تشخیص متن و حذف پس‌زمینه بار اول موتورشان را از همین سایت می‌گیرند).
صفت‌ها کجا می‌روند؟
به ستون‌هایی با پیشوند @، پس <record id="3"> ستونی به نام @id می‌سازد. متن کنار عنصرهای فرزند به ستون #text می‌رود.
اکسل درست بازش می‌کند؟
بله. گزینهٔ «افزودن BOM برای اکسل» (پیش‌فرض روشن) نشانگری را می‌نویسد که اکسل برای تشخیص UTF-8 لازم دارد، پس فارسی، عربی و نمادها درست نمایش داده می‌شوند.

ابزارهای مرتبط

بیشتر در صفحه‌گسترده و داده

این صفحه به زبان‌های دیگر: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · اردو · Bahasa Indonesia · বাংলা