R如何从xml标记中提取信息

pep*_*456 -2 python xml perl r spaces

我有一个关于xml解析的问题.我有标签,例如空格

<item1 id=rt name ="th">
<point1>1254</point1>
<point2>1254</point2>
</item>
Run Code Online (Sandbox Code Playgroud)

如何从此标签中提取ID和名称?

我现在正在使用R作为我需要的其余分析,但我也可以在perl和python中进行文件解析.什么是最好的解决方案?

ags*_*udy 5

你可以这样做,例如,使用XML包:

tt <- '<?xml version="1.0" encoding="utf-8"?>
<item id="rt" name ="th">
  <point1>1254</point1>
  <point2>1254</point2>
</item>
'

library(XML)
xpathSApply(doc,'//item',xmlGetAttr,'id')
[1] "rt"
Run Code Online (Sandbox Code Playgroud)

编辑

如果您的数据格式不正确,您应该像我上面那样重新格式化数据或逐行读取数据,并使用一些正则表达式提取信息(不推荐使用XML标记来使用正则表达式)

    tt <- '<item1 id=rt name ="th">
<point1>1254</point1>
<point2>1254</point2>
</item>
    '

    ll <- readLines(textConnection(tt))
    gsub('.*id=(.*)[ ]name.*','\\1',ll[1])
 [1] "rt"
Run Code Online (Sandbox Code Playgroud)