آموزش فایل XML در زبان برنامه نویسی آر
XML یک فرمت فایل است که با استفاده از متن ASCLL استاندارد؛ هم فرمت فایل و هم داده ها را روی شبکه جهانی وب، اینترنت و جاهای دیگر به اشتراک می گذارد. در واقع XML مخفف عبارت Extensible Markup Language (زبان نشانه گذاری توسعه پذیر) می باشد. مشابه باHTML این زبان شامل تگ های نشانه گذاری می باشد. اما برخلاف HTML که در آن تگ های نشانه گذاری ساختار صفحه را توصیف می کند؛ در xml تگ های نشانه گذاری، معنای داده هایی را که در بر می گیرد؛ توصیف می کند.
شما می توانید یک فایل xml را در آر با استفاده از بسته ی “XML” مطالعه کنید. این بسته می تواند با استفاده از فرمان زیر نصب بشود.
install.packages(“XML”)
داده های ورودی
یک فایل XML را با کپی کردن داده ی زیر در یک ویرایشگر متنی مانند نوتپد ایجاد کنید. فایل را با یک پسوند .xml ذخیره کنید و نوع فایل را به صورت ()all files انتخاب کنید.
<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
فایل xml با استفاده از تابع ()xmlParse توسط آر خوانده می شود. این فایل به شکل یک لیست در R ذخیره می شود.
# Load the package required to read XML files.
library(“XML”)
# Also load the other required package.
library(“methods”)
# Give the input file name to the function.
result <- xmlParse(file = “input.xml”)
# Print the result.
print(result)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر به دست می آید:
۱
Rick
۶۲۳٫۳
۱/۱/۲۰۱۲
IT
۲
Dan
۵۱۵٫۲
۹/۲۳/۲۰۱۳
Operations
۳
Michelle
۶۱۱
۱۱/۱۵/۲۰۱۴
IT
۴
Ryan
۷۲۹
۵/۱۱/۲۰۱۴
HR
۵
Gary
۸۴۳٫۲۵
۳/۲۷/۲۰۱۵
Finance
۶
Nina
۵۷۸
۵/۲۱/۲۰۱۳
IT
۷
Simon
۶۳۲٫۸
۷/۳۰/۲۰۱۳
Operations
۸
Guru
۷۲۲٫۵
۶/۱۷/۲۰۱۴
Finance
دریافت تعداد گره های حاضر در فایل XML
# Load the packages required to read XML files.
library(“XML”)
library(“methods”)
# Give the input file name to the function.
result <- xmlParse(file = “input.xml”)
# Exract the root node form the xml file.
rootnode <- xmlRoot(result)
# Find number of nodes in the root.
rootsize <- xmlSize(rootnode)
# Print the result.
print(rootsize)
زمانی که کد بالا را جرا می کنیم؛ نتیجه زیر را به دست می آوریم:
output
[۱] ۸
جزئیات اولین گره
بیایید نگاهی به اولین فایل تجزیه شده بیندازیم. این فایل،این ایده را به ما می دهد که عناصر متفاوتی در گره سطح بالا وجود دارد.
# Load the packages required to read XML files.
library(“XML”)
library(“methods”)
# Give the input file name to the function.
result <- xmlParse(file = “input.xml”)
# Exract the root node form the xml file.
rootnode <- xmlRoot(result)
# Print the result.
print(rootnode[1])
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر به دست می آید:
$EMPLOYEE
۱
Rick
۶۲۳٫۳
۱/۱/۲۰۱۲
IT
attr(,”class”)
[۱] “XMLInternalNodeList” “XMLNodeList”
دریافت عناصر متفاوت یک گره
# Load the packages required to read XML files.
library(“XML”)
library(“methods”)
# Give the input file name to the function.
result <- xmlParse(file = “input.xml”)
# Exract the root node form the xml file.
rootnode <- xmlRoot(result)
# Get the first element of the first node.
print(rootnode[[1]][[1]])
# Get the fifth element of the first node.
print(rootnode[[1]][[5]])
# Get the second element of the third node.
print(rootnode[[3]][[2]])
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر به دست می آید:
۱
IT
Michelle
برای مدیریت مؤثر داده ها در فایل های بسیار بزرگ؛ داده های درون فایل xml را به عنوان یک فریم دیتا می خوانیم. فرآیند چارچوب داده برای تجزیه و تحلیل داده ها.
# Load the packages required to read XML files.
library(“XML”)
library(“methods”)
# Convert the input xml file to a data frame.
xmldataframe <- xmlToDataFrame(“input.xml”)
print(xmldataframe)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر به دست می آید:
ID NAME SALARY STARTDATE DEPT
۱ ۱ Rick 623.30 2012-01-01 IT
۲ ۲ Dan 515.20 2013-09-23 Operations
۳ ۳ Michelle 611.00 2014-11-15 IT
۴ ۴ Ryan 729.00 2014-05-11 HR
۵ NA Gary 843.25 2015-03-27 Finance
۶ ۶ Nina 578.00 2013-05-21 IT
۷ ۷ Simon 632.80 2013-07-30 Operations
۸ ۸ Guru 722.50 2014-06-17 Finance
از آنجایی که داده ها اکنون به عنوان یک فریم دیتا در دسترس می باشد؛ می توانیم تابع مربوط به چارچوب داده ها را برای خواندن و به کار بردن فایل ها استفاده کنیم.