الانتقال إلى الأداة
ViewCSV
الملفات تبقى على جهازك

تحويل CSV إلى XML

orders.csv· بيانات نموذجية15 صفًا · 8 أعمدة
كتابة القيم بصفتها
<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <order_id>001041</order_id>
    <customer>عمر القحطاني</customer>
    <city>تونس</city>
    <product>Chair, ergonomic</product>
    <quantity>6</quantity>
    <unit_price>144.56</unit_price>
    <order_date>2026-01-24</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001042</order_id>
    <customer>سارة المصري</customer>
    <city>الدوحة</city>
    <product>Monitor 27"</product>
    <quantity>9</quantity>
    <unit_price>161.36</unit_price>
    <order_date>2026-02-21</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001043</order_id>
    <customer>خالد الخطيب</customer>
    <city>عمّان</city>
    <product>Desk lamp</product>
    <quantity>5</quantity>
    <unit_price>170.88</unit_price>
    <order_date>2026-03-27</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001044</order_id>
    <customer>فاطمة الحربي</customer>
    <city>دبي</city>
    <product>Desk lamp</product>
    <quantity>1</quantity>
    <unit_price>161.16</unit_price>
    <order_date>2026-04-24</order_date>
    <status>pending</status>
  </row>
  <row>
    <order_id>001045</order_id>
    <customer>نور الزهراني</customer>
    <city>عمّان</city>
    <product>Notebook A5</product>
    <quantity>1</quantity>
    <unit_price/>
    <order_date>2026-05-02</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001046</order_id>
    <customer>هدى الدوسري</customer>
    <city>الدوحة</city>
    <product>Monitor 27"</product>
    <quantity>2</quantity>
    <unit_price>211.63</unit_price>
    <order_date>2026-06-17</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001047</order_id>
    <customer> علي القحطاني </customer>
    <city>عمّان</city>
    <product>Coffee beans 1kg</product>
    <quantity>2</quantity>
    <unit_price>57.05</unit_price>
    <order_date>2026-07-09</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001048</order_id>
    <customer>عمر المصري</customer>
    <city>الدار البيضاء</city>
    <product>Desk lamp</product>
    <quantity>9</quantity>
    <unit_price>216.89</unit_price>
    <order_date>2026-08-13</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001049</order_id>
    <customer>أحمد الحربي</customer>
    <city>الرياض</city>
    <product>USB-C cable</product>
    <quantity>5</quantity>
    <unit_price>133.18</unit_price>
    <order_date>2026-09-01</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001050</order_id>
    <customer>يوسف الدوسري</customer>
    <city>عمّان</city>
    <product>USB-C cable</product>
    <quantity>4</quantity>
    <unit_price>242.50</unit_price>
    <order_date>2026-01-22</order_date>
    <status>pending</status>
  </row>
  <row>
    <order_id>001051</order_id>
    <customer>أحمد الشمري</customer>
    <city>القاهرة</city>
    <product>Desk lamp</product>
    <quantity>2</quantity>
    <unit_price>217.96</unit_price>
    <order_date>2026-02-06</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001052</order_id>
    <customer>عمر الحسن</customer>
    <city>جدة</city>
    <product>Desk lamp</product>
    <quantity>6</quantity>
    <unit_price>12.86</unit_price>
    <order_date>2026-03-18</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001053</order_id>
    <customer>أحمد السيد</customer>
    <city>دبي</city>
    <product>USB-C cable</product>
    <quantity>9</quantity>
    <unit_price>158.31</unit_price>
    <order_date>2026-04-13</order_date>
    <status>pending</status>
  </row>
  <row>
    <order_id>001054</order_id>
    <customer>عمر الدوسري</customer>
    <city>الدار البيضاء</city>
    <product>Notebook A5</product>
    <quantity>7</quantity>
    <unit_price>30.61</unit_price>
    <order_date>2026-05-07</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001043</order_id>
    <customer>خالد الخطيب</customer>
    <city>عمّان</city>
    <product>Desk lamp</product>
    <quantity>5</quantity>
    <unit_price>170.88</unit_price>
    <order_date>2026-03-27</order_date>
    <status>shipped</status>
  </row>
</rows>

15 صفًا · 1 ملف

بعد فتح ملف CSV أو لصقه تحصل على XML سليم البنية: عنصر جذر، وعنصر صف لكل سجل، وكل قيمة عنصرًا فرعيًا أو سمة. العناوين التي ليست أسماء XML صالحة، مثل ⁦Order ID⁩ أو ⁦2024 total⁩، يُعاد تسميتها وتُذكر كل إعادة تسمية. يُحوَّل الملف في متصفحك ولا يُرفع أبدًا.

طريقة تحويل CSV إلى XML

  1. اختر فتح ملف، أو أفلت ملف ⁦.csv⁩ أو ⁦.tsv⁩ أو ⁦.txt⁩ على الأداة، أو اختر لصق. وإذا بدت الأعمدة خاطئة فراجع المحدِّد والترميز في إعدادات الاستيراد.
  2. سمِّ العنصر الجذر وعنصر الصف (⁦rows⁩ و⁦row⁩ افتراضيًا) بما يتوقعه النظام المستقبِل.
  3. اختر كتابة القيم بصفتها، وطريقة التعامل مع القيم الفارغة، والمسافة البادئة، والتعريف، ثم اختر نسخ أو تنزيل XML.

إذا كان النظام الذي سيقرأ الملف يتوقع أسماء وسوم محددة، فأعِد تسمية أعمدة CSV أولًا بأداة مطابقة أعمدة CSV كي لا تلزم أي إعادة تسمية تلقائية.

ما يفعله كل خيار

عناصر فرعيةالخيار الافتراضي: ⁦<row><Customer>Smith &amp; Sons</Customer>…</row>⁩. يحفظ فواصل الأسطر في القيم ويناسب أغلب أدوات الاستيراد.
سماتعنصر واحد ذاتي الإغلاق لكل صف: ⁦<row Customer="Smith &amp; Sons" …/>⁩. مختصر؛ وتُكتب علامات الجدولة وفواصل الأسطر في القيم بصيغة ⁦&#9;⁩ و⁦&#10;⁩ و⁦&#13;⁩ كي يحتفظ بها المحلّل.
حذف القيم الفارغةمعطّل افتراضيًا، فتصبح الخلية الفارغة عنصرًا فارغًا مثل ⁦<Ship_date/>⁩. وعند تفعيله يُحذف العنصر أو السمة من ذلك الصف.
المسافة البادئةمسافتان (الافتراضي) أو 4 مسافات أو بلا (مضغوط)، الذي يكتب المستند كله في سطر واحد.
إضافة تعريف XMLمفعّل افتراضيًا: السطر الأول ⁦<?xml version="1.0" encoding="UTF-8"?>⁩. ويُعطَّل عندما يُضمَّن XML في مستند آخر.

يخضع اسما الجذر والصف لقواعد الأسماء نفسها التي تخضع لها العناوين؛ والقيمة الفارغة أو غير الصالحة تعود إلى ⁦rows⁩ أو ⁦row⁩، أو تحصل على شرطة سفلية في بدايتها.

كيف تصبح أسماء الأعمدة أسماء XML

  • تصبح المسافات ⁦_⁩، ويصبح أي حرف غير الأحرف والأرقام و⁦.⁩ و⁦-⁩ و⁦_⁩ شرطة سفلية ⁦_⁩: ⁦Total (EUR)⁩ ← ⁦Total__EUR_⁩، و⁦e-mail:work⁩ ← ⁦e-mail_work⁩. وتُستبدل النقطتان الرأسيتان، فلا تُنشأ بادئات مساحات أسماء.
  • الاسم الذي يبدأ برقم أو ⁦.⁩ أو ⁦-⁩ يحصل على شرطة سفلية في بدايته (⁦2024 total⁩ ← ⁦_2024_total⁩)؛ وكذلك الاسم الذي يبدأ بـ⁦xml⁩ بأي حالة أحرف، لأن XML يحجزه (⁦xml_ref⁩ ← ⁦_xml_ref⁩).
  • إذا انتهى عنوانان إلى الاسم نفسه، يحصل الثاني على ⁦_2⁩ (⁦a b⁩ و⁦a_b⁩ ← ⁦a_b⁩ و⁦a_b_2⁩). وأسماء XML حساسة لحالة الأحرف، فيبقى ⁦Name⁩ و⁦name⁩ مختلفين.
  • تُحفظ الأحرف من أي نظام كتابة: ⁦Größe⁩ و⁦価格⁩ اسما XML صالحان، وكذلك الأسماء العربية. والعنوان الفارغ يصبح أولًا ⁦Column 7⁩ ثم ⁦Column_7⁩.
  • تُذكر كل إعادة تسمية تحت الخيارات بصيغة ⁦old → new⁩، وتذكر ملاحظة فوق المعاينة عددها.

كيف تُكتب القيم

  • تُهرَّب ⁦&⁩ و⁦<⁩ و⁦>⁩ في نص العنصر؛ وتُهرَّب في السمات أيضًا ⁦"⁩. وفيما عدا ذلك تُكتب القيم كما في ملف CSV تمامًا: تحتفظ ⁦00731⁩ بأصفارها، ولا يُخمَّن أي نوع.
  • يمنع XML 1.0 أغلب أحرف التحكم (من U+0000 إلى U+001F عدا علامة الجدولة وحرف السطر الجديد وحرف الرجوع إلى بداية السطر)، وU+FFFE وU+FFFF، والبدائل غير المقترنة، حتى لو هُرّبت. لذا تُحذف ويُعرض عدد القيم المتأثرة.
  • تُقرأ الفواصل وعلامات الاقتباس وفواصل الأسطر داخل علامات الاقتباس وفق RFC 4180؛ ويبقى فاصل السطر فاصل سطر حقيقيًا داخل العنصر الفرعي.
  • الناتج دائمًا بترميز ⁦UTF-8⁩.

حل المشكلات

  • أداة الاستيراد لا تجد حقلًا. الأرجح أنه أُعيدت تسميته. راجع القائمة تحت الخيارات، وأعِد تسمية العمود في ملف CSV أو عدّل المطابقة في النظام المستقبِل.
  • يبلّغ المحلّل عن خطأ في الترميز. افتح الملف المصدر بترميزه الحقيقي من «إعدادات الاستيراد»؛ فلا يكون XML بترميز ⁦UTF-8⁩ سليم إلا إذا فُك ترميز CSV بشكل صحيح.
  • كل البيانات في عنصر واحد. خُمِّن المحدِّد خطأً؛ اختر فاصلة أو فاصلة منقوطة أو علامة جدولة أو خطًا عموديًا من «إعدادات الاستيراد».
  • أحتاج إلى CDATA أو مساحات أسماء أو مخطط. لا يكتب المحوّل إلا عناصر وسمات بسيطة؛ أضِف ذلك في خطوة لاحقة.

الحدود والخصوصية

الملفات حتى 25 ميغابايت أو 100 ألف صف أو مليوني خلية تُفتح مع معاينة مباشرة لأول 200 صف. أما الملفات الأكبر فتُحوَّل تدفقيًا: يُقرأ الملف مرتين على أجزاء (مرة لقياس الأعمدة، ومرة للكتابة)، وتذكر ملاحظة أن الملف المنزَّل يشمل الملف كله، ولا يتوفر نسخ. والحد الأقصى لملف الناتج الواحد 4 غيغابايت.

يجري التحويل في عامل خلفي داخل علامة التبويب هذه، فتبقى الصفحة مستجيبة ويوقفه زر إلغاء. ولا يُرسل ملف CSV أبدًا إلى أي خادم.

مثال

ملف طلبات مُصدَّر فيه مسافات وأقواس في العناوين، وعلامة &، وأقواس زاوية، وتاريخ فارغ، حُوّل بالإعدادات الافتراضية. أُعيدت تسمية ثلاثة عناوين؛ وأصبح ⁦Ship date⁩ الفارغ ⁦<Ship_date/>⁩.

CSV
Order ID,Customer,Total (EUR),Ship date
10071,"Smith & Sons",249.00,2025-02-03
10072,"Café <Lumière>",18.50,
XML
<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <Order_ID>10071</Order_ID>
    <Customer>Smith &amp; Sons</Customer>
    <Total__EUR_>249.00</Total__EUR_>
    <Ship_date>2025-02-03</Ship_date>
  </row>
  <row>
    <Order_ID>10072</Order_ID>
    <Customer>Café &lt;Lumière&gt;</Customer>
    <Total__EUR_>18.50</Total__EUR_>
    <Ship_date/>
  </row>
</rows>

أسئلة وأجوبة

لماذا تغيّر اسم عمودي؟

لا يمكن أن تحتوي أسماء عناصر XML على مسافات أو على أغلب علامات الترقيم، ولا أن تبدأ برقم، ولا أن تبدأ بـ⁦xml⁩. ويُجري المحوّل أصغر تغيير يعطي اسمًا صالحًا وفريدًا، ويذكر كل تغيير.

هل أستخدم العناصر أم السمات؟

استخدم العناصر الفرعية ما لم يطلب النظام المستقبِل سمات. تحفظ العناصر فواصل الأسطر كما كُتبت؛ أما قيم السمات فتوحّد محلّلات XML المسافات البيضاء فيها، ولهذا يرمّز المحوّل علامات الجدولة وفواصل الأسطر بمراجع أحرف.

هل تحصل الأرقام أو التواريخ على أنواع؟

لا. لا أنواع قيم مدمجة في XML، فتُكتب كل قيمة بالنص الموجود في ملف CSV. وتأتي الأنواع من المخطط أو من البرنامج الذي يقرأ الملف.

المعايير والمراجع