Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xmlSApply是如何工作的?_Xml_R - Fatal编程技术网

xmlSApply是如何工作的?

xmlSApply是如何工作的?,xml,r,Xml,R,在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)) xml.urlxmlsaply这些方法是lappy和sappl

在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))

xml.url
xmlsaply
这些方法是
lappy
sapply
函数的简单包装

对于列表中的每个元素应用func

xmlsaply(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()的简化用法中,可以理解为访问文档(提供文档)并使用xmlName、xmlValue等查找文档的详细信息。 xmlSApply(X,FUN,…)

请在此处阅读更多信息:

有关详细用法,请参阅我博客中的这篇文章:

COMMON                BOTANICAL                     ZONE                    LIGHT                    PRICE             AVAILABILITY 
"Bloodroot" "Sanguinaria canadensis"                      "4"           "Mostly Shady"                  "$2.44"                 "031599"