【问题标题】:Opening and reading XML打开和读取 XML
【发布时间】:2016-05-05 00:21:24
【问题描述】:

我正在尝试打开和读取 coursera 课程的 XML 文件。

根据课程的说明,我做到了:

library(XML)
library (RCurl)
fileURL <-"https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Frestaurants.xml"
xData <- getURL(fileURL)
doc <- xmlParse(xData)

但是,当我尝试使用 rootNode[[1]] 读取文件的内容时,我得到了模糊的内容。

我如何才能真正在 R 中破译文件?

【问题讨论】:

  • 什么晦涩的内容?
  • 有很多,但它开始了:THE LAUGHING PINT21224Highlandtown1SOUTHEASTERN
  • 这有什么不为人知的?看起来是 xml 内容。

标签: xml r


【解决方案1】:

海姆,

XML 文档本质上可以被认为是一个树结构,您似乎在问如何访问该结构的根。

根节点访问

library(XML)
url <- "http://d396qusza40orc.cloudfront.net/getdata/data/restaurants.xml"
xmlDoc <- xmlTreeParse(file=url,useInternal=TRUE)
rootNode <- xmlRoot(xmlDoc)
xmlName(rootNode)
str(rootNode)
rootNode[[1]][[1]]

后面的命令rootNode[[1]][[1]]会返回:

> rootNode[[1]][[1]]
<row _id="1" _uuid="93CACF6F-C8C2-4B87-95A8-8177806D5A6F" _position="1" _address="http://data.baltimorecity.gov/resource/k5ry-ef3g/1">
  <name>410</name>
  <zipcode>21206</zipcode>
  <neighborhood>Frankford</neighborhood>
  <councildistrict>2</councildistrict>
  <policedistrict>NORTHEASTERN</policedistrict>
  <location_1 human_address="{&quot;address&quot;:&quot;4509 BELAIR ROAD&quot;,&quot;city&quot;:&quot;Baltimore&quot;,&quot;state&quot;:&quot;MD&quot;,&quot;zip&quot;:&quot;&quot;}" needs_recoding="true"/>
</row> 
> 

现在我们有了根节点,我们可以在 XML 结构中搜索与特定值相关的信息,例如每个分支的邮政编码:

zipcode <- xpathSApply(rootNode,"//zipcode",xmlValue)
length(zipcode[zipcode==21213])

例如,我们发现33houses 在XML 文档中的邮政编码为21213

说明

不止于此;我的建议是你阅读文档

https://cran.r-project.org/web/packages/XML/XML.pdf

希望以上对你有帮助……

【讨论】:

    猜你喜欢
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 2018-02-19
    相关资源
    最近更新 更多