0

在学习 R 中有关 XML 的本教程时,我遇到了以下代码:

xml.url <- "http://www.w3schools.com/xml/plant_catalog.xml"
xmlfile <- xmlTreeParse(xml.url)
xmltop <- xmlRoot(xmlfile)
plantcat <- xmlSApply(xmltop, function(x) xmlSApply(x, xmlValue))

我理解前三行,但是对于我的一生,我不理解最后一行。有人可以向我解释吗?为什么有一个函数(x)?

4

2 回答 2

1

xmlSApply这些方法是lapplyandsapply函数的简单包装器。

对于列表中的每个元素,您应用一个函数。

xmlSApply(listXml,func)

这里的例子有点复杂,因为它使用另一个xmlSApply来定义 func。

例如这里,xmltop 中的第一个元素是:

x = <PLANT>
  <COMMON>Bloodroot</COMMON>
  <BOTANICAL>Sanguinaria canadensis</BOTANICAL>
  <ZONE>4</ZONE>
  <LIGHT>Mostly Shady</LIGHT>
  <PRICE>$2.44</PRICE>
  <AVAILABILITY>031599</AVAILABILITY>
</PLANT>

如果应用 xmlSApply(x, xmlValue):

COMMON                BOTANICAL                     ZONE                    LIGHT                    PRICE             AVAILABILITY 
"Bloodroot" "Sanguinaria canadensis"                      "4"           "Mostly Shady"                  "$2.44"                 "031599" 
于 2013-11-02T18:13:45.410 回答
0

在 xmlSApply() 的简化用法中,可以理解为访问文档(提供文档)并使用 xmlName、xmlValue 等查找文档的详细信息。 xmlSApply(X, FUN, ...)

在这里阅读更多:http: //www.inside-r.org/packages/cran/XML/docs/xmlApply

有关详细用法,请参阅我博客中的这篇文章:http: //hodentekhelp.blogspot.com/2016/07/how-do-you-get-at-details-of-xml.html

于 2016-07-05T21:29:10.183 回答