ایکسامال
XML
تبدیل داده بین JSON و XML: Parse، Build و Transform
نمای کلی
نود XML چیست؟
نود XML دو عملیات اصلی دارد:
- 1XML to JSON: Parse کردن رشته XML و تبدیل به JSON
- 2JSON to XML: ساخت رشته XML از داده JSON
کاربردهای XML:
- وبسرویسهای SOAP (بانکها، سازمانهای دولتی)
- فیدهای RSS/Atom
- فایلهای SVG
- XHTML و Sitemap
- فرمتهای Office (docx, xlsx)
- پیکربندی سرورها (web.config, pom.xml)
- صنایع: HL7 (پزشکی)، EDIFACT (تجارت)، XBRL (مالی)
Options:
- Normalize Tags: یکسانسازی نام تگها
- Trim: حذف فضاهای خالی اضافی
- Explicit Array: آرایه برای تگهای تکراری
- Merge Attributes: ادغام Attributes با محتوا
احراز هویت
بدون نیاز به احراز هویت - نود XML یک نود داخلی n8n است.
عملیاتهای موجود
XML به JSON
Parse کردن رشته XML و تبدیل به ساختار JSON. گزینههای مختلف برای مدیریت Attributes و Namespaces.
JSON به XML
ساخت رشته XML از ساختار JSON. کنترل کامل بر Root Element، Attributes و فرمت خروجی.
XPath Query
استخراج بخشی از XML با استفاده از XPath expression. مناسب برای XMLهای بزرگ و پیچیده.
اعتبارسنجی XML
بررسی صحت ساختار XML و اعتبارسنجی بر اساس XSD Schema.
کاربردهای متداول
موارد استفاده رایج
۱. مصرف وبسرویس SOAP
بسیاری از سرویسهای بانکی و دولتی ایران از SOAP استفاده میکنند. ساخت XML Request > HTTP Request > Parse XML Response.
۲. خواندن فید RSS
دریافت RSS Feed > XML to JSON > استخراج مقالات > ارسال به Telegram/Slack.
۳. ساخت Sitemap
تولید sitemap.xml خودکار از لیست URLهای سایت. JSON to XML با ساختار sitemap.
۴. تبدیل داده ERP
دریافت XML از سیستم حسابداری > تبدیل به JSON > پردازش > ذخیره در دیتابیس.
۵. ادغام با سیستمهای Legacy
بسیاری از سیستمهای قدیمی فقط XML میفهمند. JSON → XML برای ارسال، XML → JSON برای دریافت.
۶. پردازش SVG
خواندن فایل SVG (XML-based) > تغییر رنگ/اندازه > ذخیره فایل جدید.
۷. Import/Export داده
سیستمهای مختلف فرمت XML مخصوص دارند. تبدیل بین فرمتها برای Migration.
۸. ساخت فاکتور الکترونیکی
تولید e-Invoice در فرمت UBL XML برای سامانه مودیان (سازمان امور مالیاتی ایران).
نکات حرفهای
نکات و ترفندها
بهترین تنظیمات XML to JSON
- explicitArray: true → قابل پیشبینیتر
- mergeAttrs: true → ساختار سادهتر
- trim: true → حذف فضاهای اضافی
- normalizeTags: true → تگها lowercase
XPath مفید
//item: همه عناصر item//item[@id='123']: item با id=123//item/title/text(): متن عنوانهاcount(//item): تعداد itemها//item[position()<=10]: 10 آیتم اول
JSON to XML Tips
- Root element حتماً یکی باشد
- از
_prefix برای attributes:{_id: "123"} - آرایهها به تگهای تکراری تبدیل میشوند
- null/undefined حذف میشوند
ادغام با سایر نودها
- HTTP Request: دریافت/ارسال XML API
- Read/Write File: خواندن/نوشتن فایل XML
- Code: پردازش پیچیده XML
- Set: اضافه کردن فیلد XML به داده
SOAP Web Services
- 1HTTP Request: POST با Content-Type: text/xml
- 2Body: XML ساختهشده با JSON to XML
- 3Response: XML to JSON
- 4استخراج نتیجه از JSON
Performance
- XMLهای بزرگ (>10MB) حافظه زیادی مصرف میکنند
- از Streaming parser برای فایلهای بزرگ (Code node)
- فقط بخش مورد نیاز را با XPath استخراج کنید
رفع مشکلات
عیبیابی
۱. Parse Error
مشکل: XML نامعتبر راهحل: بررسی تگهای بستهنشده. Encoding صحیح (UTF-8). کاراکترهای خاص Escape شوند (&, <, >).
۲. Namespace مشکلساز
مشکل: تگها با namespace شناسایی نمیشوند راهحل: از ignoreNamespace: true استفاده کنید. یا namespace prefix را در XPath بنویسید.
۳. آرایه vs تکمقداری
مشکل: گاهی آرایه، گاهی تکمقداری راهحل: explicitArray: true تنظیم کنید تا همیشه آرایه باشد. قابل پیشبینیتر است.
۴. Attributes از دست میروند
مشکل: XML Attributes در JSON ظاهر نمیشوند راهحل: attrKey تنظیم کنید (پیشفرض: $). mergeAttrs: true برای ادغام.
۵. CDATA محتوا
مشکل: محتوای CDATA خوانده نمیشود راهحل: n8n به صورت پیشفرض CDATA را parse میکند. از cdataKey برای تنظیم.
۶. Encoding فارسی
مشکل: کاراکترهای فارسی خراب میشوند راهحل: مطمئن شوید XML declaration حاوی encoding="UTF-8" باشد. HTTP Response هم UTF-8 باشد.
