XML یک قالب فایل است که هم خود فایل و هم دادههای موجود در آن را با استفاده از متن استاندارد ASCII در وب جهانی (World Wide Web)، اینترانتها و سایر محیطها به اشتراک میگذارد. واژه XML مخفف Extensible Markup Language است. مشابه HTML، شامل برچسبهای نشانهگذاری (markup tags) است. با این حال، تفاوت اصلی آن با HTML در این است که در HTML برچسبها ساختار صفحه را توصیف میکنند، در حالیکه در XML برچسبها معنای دادههای موجود در فایل را مشخص میکنند.
اگر بخواهید در R یک فایل XML باز کنید، باید اول بسته XML را نصب کنید. این کار با دستور زیر انجام میشود:
1 |
install.packages("XML") |
داده ورودی
برای ایجاد یک فایل XML، ابتدا داده زیر را در یک ویرایشگر متنی مانند Notepad کپی کنید. سپس فایل را با پسوند .xml ذخیره کرده و نوع فایل را روی All files (.) قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
<RECORDS> <EMPLOYEE> <ID>1</ID> <NAME>Rick</NAME> <SALARY>623.3</SALARY> <STARTDATE>1/1/2012</STARTDATE> <DEPT>IT</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>2</ID> <NAME>Dan</NAME> <SALARY>515.2</SALARY> <STARTDATE>9/23/2013</STARTDATE> <DEPT>Operations</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>3</ID> <NAME>Michelle</NAME> <SALARY>611</SALARY> <STARTDATE>11/15/2014</STARTDATE> <DEPT>IT</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>4</ID> <NAME>Ryan</NAME> <SALARY>729</SALARY> <STARTDATE>5/11/2014</STARTDATE> <DEPT>HR</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>5</ID> <NAME>Gary</NAME> <SALARY>843.25</SALARY> <STARTDATE>3/27/2015</STARTDATE> <DEPT>Finance</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>6</ID> <NAME>Nina</NAME> <SALARY>578</SALARY> <STARTDATE>5/21/2013</STARTDATE> <DEPT>IT</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>7</ID> <NAME>Simon</NAME> <SALARY>632.8</SALARY> <STARTDATE>7/30/2013</STARTDATE> <DEPT>Operations</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>8</ID> <NAME>Guru</NAME> <SALARY>722.5</SALARY> <STARTDATE>6/17/2014</STARTDATE> <DEPT>Finance</DEPT> </EMPLOYEE> </RECORDS> |
خواندن فایل XML در زبان R
در R، فایل XML با تابع xmlParse()
خوانده میشود و نتیجه به صورت یک لیست در محیط R ذخیره خواهد شد.
1 2 3 4 5 6 7 8 9 10 11 |
# بارگذاری بسته لازم برای خواندن فایلهای XML library("XML") # بارگذاری بسته دیگر موردنیاز library("methods") # معرفی نام فایل ورودی به تابع result <- xmlParse(file = "input.xml") # چاپ نتیجه print(result) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
1 Rick 623.3 1/1/2012 IT 2 Dan 515.2 9/23/2013 Operations 3 Michelle 611 11/15/2014 IT 4 Ryan 729 5/11/2014 HR 5 Gary 843.25 3/27/2015 Finance 6 Nina 578 5/21/2013 IT 7 Simon 632.8 7/30/2013 Operations 8 Guru 722.5 6/17/2014 Finance |
محاسبه تعداد نودها (Nodes) در یک فایل XML
برای شمارش تعداد نودهای موجود در یک فایل XML در محیط R از تابع xmlSize()
استفاده میکنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# بارگذاری بستههای موردنیاز برای خواندن فایلهای XML library("XML") library("methods") # معرفی فایل ورودی به تابع result <- xmlParse(file = "input.xml") # استخراج ریشه (root node) از فایل XML rootnode <- xmlRoot(result) # پیدا کردن تعداد نودهای موجود در ریشه rootsize <- xmlSize(rootnode) # چاپ نتیجه print(rootsize) |
1 |
[1] 8 |
جزئیات اولین نود
اکنون به اولین رکورد فایل پردازششده نگاه میکنیم تا عناصر (elements) مختلفی را که در سطح بالای نود وجود دارند ببینیم.
1 2 3 4 5 6 7 8 9 10 11 12 |
# بارگذاری بستههای موردنیاز برای خواندن فایلهای XML library("XML") library("methods") # معرفی فایل ورودی به تابع result <- xmlParse(file = "input.xml") # استخراج ریشه (root node) از فایل XML rootnode <- xmlRoot(result) # چاپ اولین نود print(rootnode[1]) |
1 2 3 4 5 6 7 8 9 10 |
$EMPLOYEE 1 Rick 623.3 1/1/2012 IT attr(,"class") [1] "XMLInternalNodeList" "XMLNodeList" |
استخراج عناصر مختلف از یک نود
برای دسترسی به عناصر خاص از یک نود مشخص میتوان از اندیسگذاری (indexing) استفاده کرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# بارگذاری بستههای موردنیاز library("XML") library("methods") # معرفی فایل ورودی به تابع result <- xmlParse(file = "input.xml") # استخراج ریشه (root node) rootnode <- xmlRoot(result) # دریافت اولین عنصر از اولین نود print(rootnode[[1]][[1]]) # دریافت پنجمین عنصر از اولین نود print(rootnode[[1]][[5]]) # دریافت دومین عنصر از سومین نود print(rootnode[[3]][[2]]) |
1 2 3 |
1 IT Michelle |
تبدیل XML به Data Frame در R
برای مدیریت بهتر دادهها در فایلهای بزرگ، دادههای موجود در فایل XML را میتوان به یک Data Frame در R تبدیل کرد. سپس با استفاده از توابع مربوط به Data Frame دادهها را پردازش و تحلیل نمود.
1 2 3 4 5 6 7 8 9 |
# بارگذاری بستههای موردنیاز برای خواندن فایلهای XML library("XML") library("methods") # تبدیل فایل XML ورودی به Data Frame xmldataframe <- xmlToDataFrame("input.xml") # چاپ دادهها print(xmldataframe) |
1 2 3 4 5 6 7 8 9 |
ID NAME SALARY STARTDATE DEPT 1 1 Rick 623.30 2012-01-01 IT 2 2 Dan 515.20 2013-09-23 Operations 3 3 Michelle 611.00 2014-11-15 IT 4 4 Ryan 729.00 2014-05-11 HR 5 NA Gary 843.25 2015-03-27 Finance 6 6 Nina 578.00 2013-05-21 IT 7 7 Simon 632.80 2013-07-30 Operations 8 8 Guru 722.50 2014-06-17 Finance |
پس از تبدیل دادهها به Data Frame، تمامی توابع و ویژگیهای مرتبط با این ساختار در دسترس هستند. در نتیجه به کمک آنها میتوان دادهها را خواند، فیلتر کرد و مورد پردازش قرار داد.
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۲۵ شهریور ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره آموزش Go
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس