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中进行文件解析.什么是最好的解决方案?
你可以这样做,例如,使用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)