📄 تمارين XML (30 تمرين)
تمارين عملية للتعامل مع بيانات XML في لغة ص. تشمل التحليل، البناء، البحث، والتحويل.
إنشاء عنصر XML بسيط
اكتب برنامجاً ينشئ عنصر XML بسيط ويطبعه.
💡 تلميح
استخدم عنصر_xml() لإنشاء عنصر وعيّن_نص() لتعيين محتواه
📝 عرض الحل
إضافة سمات لعنصر
اكتب برنامجاً ينشئ عنصر XML مع سمات (attributes).
💡 تلميح
استخدم عيّن_سمة() لإضافة سمات للعنصر
📝 عرض الحل
تحليل XML بسيط
اكتب برنامجاً يحلل نص XML ويستخرج محتواه.
💡 تلميح
استخدم حلل_xml() لتحليل النص واسم_وسم() ونص_عنصر() للاستخراج
📝 عرض الحل
عناصر متداخلة
اكتب برنامجاً ينشئ شجرة XML بعناصر متداخلة.
💡 تلميح
استخدم أضف_ابن() لإضافة عناصر فرعية
📝 عرض الحل
قراءة العناصر الفرعية
اكتب برنامجاً يقرأ جميع العناصر الفرعية من عنصر XML.
💡 تلميح
استخدم أبناء_عنصر() للحصول على مصفوفة العناصر الفرعية
📝 عرض الحل
بناء بطاقة شخصية XML
اكتب برنامجاً يبني بطاقة شخصية كعنصر XML.
💡 تلميح
أنشئ عنصراً رئيسياً وأضف عناصر فرعية لكل حقل
📝 عرض الحل
تحويل خريطة إلى XML
اكتب دالة تحوّل خريطة (قاموس) إلى عنصر XML.
💡 تلميح
كرر على مفاتيح الخريطة وأنشئ عنصراً لكل زوج
📝 عرض الحل
تحويل XML إلى خريطة
اكتب دالة تحوّل عنصر XML بسيط إلى خريطة.
💡 تلميح
كرر على الأبناء واجعل اسم الوسم مفتاحاً والنص قيمة
📝 عرض الحل
بحث في XML (إسلامي: فهرس القرآن)
اكتب دالة تبحث عن عنصر بوسم معين في شجرة XML لفهرس سور القرآن.
💡 تلميح
استخدم البحث التكراري (recursive) في الشجرة
📝 عرض الحل
بناء RSS Feed (إسلامي: أخبار المسجد)
اكتب برنامجاً ينشئ خلاصة RSS لأخبار المسجد.
💡 تلميح
أنشئ هيكل RSS مع channel وعناصر item
📝 عرض الحل
عد العناصر في شجرة
اكتب دالة تكرارية تعد جميع العناصر في شجرة XML.
💡 تلميح
ابدأ بـ 1 (العنصر الحالي) ثم أضف عد كل ابن تكرارياً
📝 عرض الحل
تنسيق XML مع مسافات
اكتب دالة تطبع شجرة XML بتنسيق جميل مع مسافات بادئة.
💡 تلميح
استخدم المستوى لتحديد عدد المسافات البادئة
📝 عرض الحل
تحويل XML لـ JSON
اكتب دالة تحوّل شجرة XML إلى هيكل JSON (خريطة).
💡 تلميح
كرر على الأبناء تكرارياً — إذا تكرر الوسم اجعله مصفوفة
📝 عرض الحل
تصفية العناصر بسمة
اكتب دالة تصفّي عناصر XML حسب قيمة سمة.
💡 تلميح
ابحث تكرارياً وقارن قيمة السمة المطلوبة
📝 عرض الحل
دمج ملفين XML
اكتب دالة تدمج شجرتي XML تحت جذر واحد.
💡 تلميح
أنشئ جذراً جديداً وأضف أبناء الشجرتين إليه
📝 عرض الحل
XPath مبسط
اكتب دالة تحاكي مسار XPath بسيط للوصول لعنصر.
💡 تلميح
قسّم المسار بـ / واتبع كل جزء بالتنقل بين الأبناء
📝 عرض الحل
بناء جدول HTML من XML
اكتب دالة تحوّل بيانات XML إلى جدول HTML.
💡 تلميح
استخرج الرؤوس من أول صف وبيانات كل صف من الأبناء
📝 عرض الحل
التحقق من صحة XML
اكتب دالة تتحقق من أن شجرة XML تحتوي العناصر المطلوبة.
💡 تلميح
اجمع أسماء الأوسام الموجودة وقارنها بالمطلوب
📝 عرض الحل
نسخ شجرة XML عميق
اكتب دالة تنسخ شجرة XML بشكل عميق (Deep Copy).
💡 تلميح
أنشئ عنصراً جديداً بنفس الوسم والنص ثم انسخ الأبناء تكرارياً
📝 عرض الحل
بناء تقويم هجري XML (إسلامي)
اكتب برنامجاً يبني تقويم هجري كشجرة XML.
💡 تلميح
أنشئ عنصراً لكل شهر مع اسمه وعدد أيامه ومناسباته
📝 عرض الحل
محرك قوالب XML
اكتب محرك قوالب بسيط يستبدل متغيرات {{اسم}} في نصوص XML.
💡 تلميح
ابحث عن {{}} في كل نص واستبدلها بالقيم المقابلة
📝 عرض الحل
محول XML إلى CSV
اكتب دالة تحوّل بيانات XML جدولية إلى صيغة CSV.
💡 تلميح
استخرج الرؤوس من أوسام أول صف ثم اقرأ نصوص كل صف
📝 عرض الحل
تحويل JSON إلى XML
اكتب دالة تحوّل هيكل JSON (خريطة متداخلة) إلى XML.
💡 تلميح
تحقق من نوع البيانات: خريطة → أبناء، مصفوفة → عناصر، قيمة → نص
📝 عرض الحل
مقارنة شجرتين XML
اكتب دالة تقارن شجرتين XML وتحدد الاختلافات.
💡 تلميح
قارن الوسم والنص والأبناء تكرارياً واجمع الفروق
📝 عرض الحل
محول XSLT مبسط (إسلامي: تقرير المسجد)
اكتب محول بسيط يطبق تحويلات على شجرة XML لإنتاج تقرير المسجد.
💡 تلميح
استخدم خريطة من الوسم → دالة تحويل وطبّقها على كل عنصر
📝 عرض الحل
بناء Sitemap.xml
اكتب مولّد خريطة موقع XML.
💡 تلميح
أنشئ عنصر urlset وأضف عناصر url بداخلها loc و changefreq و priority
📝 عرض الحل
محلل SVG بسيط
اكتب محللاً يقرأ شجرة SVG ويستخرج الأشكال وخصائصها.
💡 تلميح
اقرأ اسم الوسم لتحديد نوع الشكل والسمات لخصائصه
📝 عرض الحل
ترميز/فك ترميز HTML Entities
اكتب دوال لترميز وفك ترميز محارف XML/HTML الخاصة.
💡 تلميح
استبدل & أولاً (لتجنب ترميزها مرتين) ثم باقي المحارف
📝 عرض الحل
بناء فاتورة XML (إسلامي: فاتورة وقف)
اكتب نظام فوترة XML كامل مع حساب الزكاة والضريبة.
💡 تلميح
أنشئ هيكل الفاتورة مع عناصر فرعية لكل بند واحسب المجموع
📝 عرض الحل
محرر XML تفاعلي
اكتب نظام تعديل XML يدعم الإضافة والحذف والتعديل عبر أوامر.
💡 تلميح
استخدم دوال منفصلة للإضافة والتعديل والعرض مع تتبع الشجرة