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/70.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/5/excel/28.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
R:将XML解析为所需的映射表_Xml_R - Fatal编程技术网

R:将XML解析为所需的映射表

R:将XML解析为所需的映射表,xml,r,Xml,R,我有一个XML,下面是示例格式,需要生成一个映射表 <params> <parm suffix="1">A</parm> <parm suffix="2">B</parm> <parm suffix="3">C</parm> <parm suffix="4">D</parm> <parm suffix="5">E</par

我有一个XML,下面是示例格式,需要生成一个映射表

<params>
     <parm suffix="1">A</parm>
     <parm suffix="2">B</parm>
     <parm suffix="3">C</parm>
     <parm suffix="4">D</parm>
     <parm suffix="5">E</parm>
 <params>
只要我能像parmList[“A”]一样检索到A_1,任何类型的格式都可以。 谢谢大家。

比如:

library(XML)
xmltest <- "<params>
     <parm suffix=\"1\">A</parm>
     <parm suffix=\"2\">B</parm>
     <parm suffix=\"3\">C</parm>
     <parm suffix=\"4\">D</parm>
     <parm suffix=\"5\">E</parm>
</params>"

xmlout <- xmlInternalTreeParse(xmltest)
outattrs <- xpathApply(xmlout,"//params/parm",xmlGetAttr,"suffix")
outval <- xpathApply(xmlout,"//params/parm",xmlValue)
parmList <- setNames(Map(paste, outval, outattrs, sep="_"),outval)

#$A
#[1] "A_1"
#$B
#[1] "B_2"
#$C
#[1] "C_3"
#$D
#[1] "D_4"
#$E
#[1] "E_5"

parmList[["A"]]
#[1] "A_1"

每个值是否有多个后缀?@thelatemail-每个值有一个后缀,但每个值的后缀可能不同谢谢@thelatemail的回答:)
library(XML)
xmltest <- "<params>
     <parm suffix=\"1\">A</parm>
     <parm suffix=\"2\">B</parm>
     <parm suffix=\"3\">C</parm>
     <parm suffix=\"4\">D</parm>
     <parm suffix=\"5\">E</parm>
</params>"

xmlout <- xmlInternalTreeParse(xmltest)
outattrs <- xpathApply(xmlout,"//params/parm",xmlGetAttr,"suffix")
outval <- xpathApply(xmlout,"//params/parm",xmlValue)
parmList <- setNames(Map(paste, outval, outattrs, sep="_"),outval)

#$A
#[1] "A_1"
#$B
#[1] "B_2"
#$C
#[1] "C_3"
#$D
#[1] "D_4"
#$E
#[1] "E_5"

parmList[["A"]]
#[1] "A_1"
Map(
  paste,
  sapply(xmlout["//params//parm"], xmlValue),
  xmlout["//params//parm//@suffix"],
  sep="_"
)