xmlSApply如何工作?

时间:2013-11-02 15:18:08

标签: xml r

在R中使用this tutorial处理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)?

2 个答案:

答案 0 :(得分:1)

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

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

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" 

答案 1 :(得分: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