العمل مع XML في JavaScript (Node.js): المكتبات والأمثلة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع XML في JavaScript (Node.js): المكتبات، التحليل والإنشاء



XML (eXtensible Markup Language) لا يزال تنسيقًا مطلوبًا لتبادل البيانات في الأنظمة المؤسسية وملفات التكوين وواجهات برمجة التطبيقات القديمة. في نظام Node.js البيئي، توجد عدة مكتبات ناضجة تتيح تحليل وإنشاء وتحويل مستندات XML بكفاءة. في هذه المقالة، سنستعرض ثلاث مكتبات الأكثر شيوعًا: fast-xml-parser و xml2js و libxmljs، وسنقدم أمثلة عملية لاستخدامها.



1. fast-xml-parser — محلل سريع وآمن



fast-xml-parser هي واحدة من أكثر المكتبات أداءً للعمل مع XML في Node.js. تدعم التحليل المتزامن وغير المتزامن، كما يمكنها التحقق من صحة مستندات XML وفقًا لمخططات XSD.



التثبيت

npm install fast-xml-parser


مثال على تحليل XML إلى كائن JavaScript

const { XMLParser } = require('fast-xml-parser');

const xmlData = `<?xml version="1.0" encoding="UTF-8"?><bookstore> <book category="programming"> <title lang="en">JavaScript: The Good Parts</title> <author>Douglas Crockford</author> <year>2008</year> <price>29.99</price> </book></bookstore>`;

const parser = new XMLParser({ ignoreAttributes: false, attributeNamePrefix: '@_'});

const result = parser.parse(xmlData);console.log(JSON.stringify(result, null, 2));


يسمح الإعداد ignoreAttributes: false بالاحتفاظ بسمات وسوم XML، بينما يضيف attributeNamePrefix بادئة لأسماء السمات لمنع التعارض مع الوسوم العادية.



إنشاء XML من كائن

const { XMLBuilder } = require('fast-xml-parser');

const builder = new XMLBuilder({ format: true, ignoreAttributes: false});

const obj = { bookstore: { book: { '@_category': 'programming', title: { '@_lang': 'en', '#text': 'Clean Code' }, author: 'Robert C. Martin', year: 2008, price: 39.99 } }};

const xmlOutput = builder.build(obj);console.log(xmlOutput);


2. xml2js — محول بسيط وموثوق



xml2js هي مكتبة كلاسيكية لتحويل XML إلى JSON والعكس. توفر واجهة برمجة تطبيقات بسيطة وموثقة جيدًا.



التثبيت

npm install xml2js


تحليل XML مع معالجة الأخطاء

const xml2js = require('xml2js');const fs = require('fs');

const parser = new xml2js.Parser({ explicitArray: false, // لا يلف العناصر المفردة في مصفوفات trim: true, normalizeTags: true // تطبيع حالة الوسوم});

fs.readFile('config.xml', 'utf-8', (err, data) => { if (err) { console.error('خطأ في قراءة الملف:', err); return; } parser.parseString(data, (parseErr, result) => { if (parseErr) { console.error('خطأ في تحليل XML:', parseErr); return; } console.log('معلمات التكوين:', result.configuration); });});


إنشاء XML باستخدام xml2js

const xml2js = require('xml2js');

const builder = new xml2js.Builder({ xmldec: { version: '1.0', encoding: 'UTF-8' }, renderOpts: { pretty: true, indent: ' ' }});

const obj = { response: { status: 'success', data: { user: { id: 123, name: 'إيفان بيتروف', email: 'ivan@example.com' } } }};

const xml = builder.buildObject(obj);console.log(xml);


3. libxmljs — للعمل المتقدم مع XML



l

توصيات