Home  >  Article  >  Backend Development  >  R language XML format data import and processing - ShangFR

R language XML format data import and processing - ShangFR

黄舟
黄舟Original
2017-02-25 13:59:562411browse

Data parsing

XML is an extensible markup language that is designed to transmit and store data. XML is the most commonly used tool for data transfer between various applications. It is different from databases such as Access, Oracle and SQL Server. The database provides more powerful data storage and analysis capabilities, such as data indexing, sorting, search, correlation consistency, etc. It just stores data . In fact, the biggest difference between it and other data representations is that it is extremely simple. This is a seemingly trivial advantage, but it is this that makes it unique.

For XML format data, the R language XML package can import and process data. See the case description below for details.

Case 1

Directly input a piece of markup language text and use the XML package to parse it.

library(XML)

tt =
  &#39;<x>
<a>text</a>
<b foo="1"/>
<c bar="me">
<d>a phrase</d>
</c>
</x>&#39;
doc = xmlParse(tt)
xmlToList(doc)
# use an R-level node representation
doc = xmlTreeParse(tt)
xmlToList(doc)

Case 2

Import existing xml format data and process it. This case uses mobile phone address book xml data. Follow the steps below:

#读取xml格式数据并解析
xmlfile=xmlParse(file.choose(),encoding="UTF-8") 
class(xmlfile)

#形成根目录列表数据
xmltop = xmlRoot(xmlfile) 
class(xmltop) #查看类
xmlName(xmltop) #查看根目录名
xmlSize(xmltop) #查看根目录总数
xmlName(xmltop[[1]]) #查看子目录名

# 查看第一个子目录
xmltop[[1]]
# 查看第二个子目录
xmltop[[2]]

#子目录节点
xmlSize(xmltop[[1]]) #子目录节点数
xmlSApply(xmltop[[1]], xmlName) #子目录节点名
xmlSApply(xmltop[[1]], xmlAttrs) #子目录节点属性
xmlSApply(xmltop[[1]], xmlSize) #子目录节点大小

#查看第一个子目录的第一个节点
xmltop[[1]][[1]]
#查看第一个子目录的第二个节点
xmltop[[1]][[2]]

#第二个子目录
xmltop[[2]][[1]]
xmltop[[2]][[2]]

xmltop[[1]][[3]][[1]][[1]] #查看联系人电话
xmltop[[&#39;Contact&#39;]][[&#39;PhoneList&#39;]][[1]][[1]]  #第二种方式
getNodeSet(xmltop, "//Contact/PhoneList")[[1]][[1]][[1]] #第三种方式

xmltop[[1]][[3]][[1]][[1]] = 13717232323 #更改联系人电话
xmltop[[1]][[1]][[1]]= "zhangsan "#更改联系人姓名

#保存
saveXML(xmltop, file="out.xml",encoding="UTF-8")

xml Format to dataframe

Follow the following steps:

xmlToDataFrame(xmlfile) #第一种方式,直接用xmlToDataFrame()函数

library("plyr") #第二种方式,数据格式处理专用包plyr

MyContact=ldply(xmlToList(file.choose()), data.frame) #先转成list,再转dataframe
View(MyContact)

# 查看联系方式
MyContact[,c("Name" ,"PhoneList.Phone.text")]

# 联系方式保存
write.csv(MyContact, "MyContact.csv", row.names=FALSE)

Feedback and Suggestions

The above is the content of R language XML format data import and processing - ShangFR. For more related content, please Follow the PHP Chinese website (www.php.cn)!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn