English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

ملفات XML بلغة R

يُشار إلى XML على أنه لغة العلامات الموسعة (eXtensible Markup Language)، تم تصميم XML لتخزين وتبادل البيانات.

تحميل مكتبة توسيع R لقراءة وكتابة ملفات XML يتطلب تثبيت، يمكننا إدخال الأمر التالي في وحدة التحكم في R لإكمال التثبيت:

install.packages("XML", repos = "https://mirrors.ustc.edu.cn/CRAN/")

# عرض النتيجة

> any(grepl("XML", installed.packages()))
[1] TRUE

إنشاء ملف sites.xml، يجب أن يكون الملف xml في نفس الدليل مع سكريpt الاختبار، والكود كالتالي:

<sites>
    <site>
        <id>1</id>
        <name>Google</name>
        <url>www.google.com</url>
        <likes>111</likes>
    </site>
 
    <site>
        <id>2</id>
        <name>w3codebox</name>
        <url>ar.oldtoolbag.com</url>
        <likes>222</likes>
    </site>
 
    <site>
        <id>3</id>
        <name>Taobao</name>
        <url>www.taobao.com</url>
        <likes>333</likes>
    </site>
</sites>

يمكننا الآن استخدام حزمة XML لتحميل بيانات ملف xml:

# تحميل مكتبة XML
library("XML")
# تعيين اسم الملف
result <- xmlParse(file = "sites.xml")
# عرض النتيجة
print(result)

حساب كمية البيانات xml:

# تحميل مكتبة XML
library("XML")
# تعيين اسم الملف
result <- xmlParse(file = "sites.xml")
# استخراج العنصر الجذر
rootnode <- xmlRoot(result)
# حساب الكمية
rootsize <- xmlSize(rootnode)
# عرض النتيجة
print(rootsize)

نتيجة تنفيذ الكود أعلاه هي:

[1] 3

عرض بيانات العنصر، استخدم [] للسطر المحدد، واستخدم [[ ]] للسطر والعمود المحددين:

# تحميل مكتبة XML
library("XML")
# تعيين اسم الملف
result <- xmlParse(file = "sites.xml")
# استخراج العنصر الجذر
rootnode <- xmlRoot(result)
# عرض بيانات العنصر الثاني
print(rootnode[2])
# عرض البيانات الأولى للعنصر الثاني
print(rootnode[[2]][[1]])
# عرض البيانات الثالثة للعنصر الثاني
print(rootnode[[2]][[3]])

نتيجة تنفيذ الكود أعلاه هي:

$site
<site>
  <id>2</id>
  <name>w3codebox</name>
  <url>ar.oldtoolbag.com</url>
  <likes>222</likes>
</site> 
attr(,"class")
[1] "XMLInternalNodeList" "XMLNodeList"        
<id>2</id> 
<url>ar.oldtoolbag.com</url>

تحويل XML إلى قائمة بيانات

أعلاه كود يولد مخرجات بتنسيق xml، نستخدم دالة xmlToList() لنقل بيانات الملف إلى تنسيق قائمة، مما يجعل القراءة أسهل:

# تحميل مكتبة XML
library("XML")
# تعيين اسم الملف
result <- xmlParse(file = "sites.xml")
# تحويل إلى قائمة
xml_data <- xmlToList(result)
print(xml_data)
print("============================")
# إظهار البيانات في الصف الأول والعمود الثاني
print(xml_data[[1]][[2]])

نتيجة تنفيذ الكود أعلاه هي:

$site
$site$id
[1] "1"
$site$name
[1] "Google"
$site$url
[1] "www.google.com"
$site$likes
[1] "111"
$site
$site$id
[1] "2"
$site$name
[1] "w3codebox"
$site$url
[1] "ar.oldtoolbag.com"
$site$likes
[1] "222"
$site
$site$id
[1] "3"
$site$name
[1] "Taobao"
$site$url
[1] "www.taobao.com"
$site$likes
[1] "333"
[1] "============================"
[1] "Google"

تحويل XML إلى نافذة بيانات

يمكن تحويل بيانات ملف XML إلى نوع نافذة البيانات، مما يجعل من السهل التعامل مع البيانات:

# تحميل مكتبة XML
library("XML")
# تحويل بيانات ملف xml إلى نافذة بيانات
xmldataframe <- xmlToDataFrame("sites.xml")
print(xmldataframe)

نتيجة تنفيذ الكود أعلاه هي:

  id   name            url likes
1  1 Google www.google.com   111
2  2 w3codebox ar.oldtoolbag.com   222
3  3 Taobao www.taobao.com   333