从tar.gz文件中读取xml

时间:2013-02-02 02:17:58

标签: xml r tar

我正在使用从MAC系统导出的一些数据文件。我收到了一个文件名20110205.tar然后我试着看看里面的内容给了我原始文件?BIN。我的朋友帮我提取了一堆xml文件,其名称是时间格式:“2011-03-15T23_57_59Z.xml”,“2011-03-15T23_58_00Z.xml”。我尝试使用XML包和一些命令,如xmlTree,xmlTreeParse,asXMLNode然后我完全陷入困境。 当我用记事本打开xml文件时,我有类似的东西:(我的朋友使用Python来做到这一点,但我不知道Python) 我也试过像epidata这样的软件包,但似乎很多软件包都没有。 提取的文件我做了winrar并上传到mediafire: http://www.mediafire.com/?ot8vt0wdw5c3oc1 <asdiOutput xmlns="http://tfm.faa.gov/tfms/TFMS_XIS" xmlns:nxce="http://tfm.faa.gov/tfms/NasXCoreElements" xmlns:mmd="http://tfm.faa.gov/tfms/MessageMetaData" xmlns:nxcm="http://tfm.faa.gov/tfms/NasXCommonMessages" xmlns:idr="http://tfm.faa.gov/tfms/TFMS_IDRS" xmlns:xis="http://tfm.faa.gov/tfms/TFMS_XIS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tfm.faa.gov/tfms/TFMS_XIS http://localhost:58489/tfms/schema/TFMS_XIS.xsd" timestamp="2011-03-15T23:57:59Z"> <asdiMessage sourceFacility="CCZM" sourceTimeStamp="2011-03-15T23:57:27Z" trigger="TZ"> <trackInformation> <nxcm:aircraftId>UAL966</nxcm:aircraftId> <nxcm:speed>470</nxcm:speed> <nxcm:reportedAltitude> <nxce:assignedAltitude> <nxce:simpleAltitude>350</nxce:simpleAltitude> </nxce:assignedAltitude> </nxcm:reportedAltitude> <nxcm:position> <nxce:latitude> <nxce:latitudeDMS degrees="45" minutes="40" direction="NORTH"/> </nxce:latitude> <nxce:longitude> <nxce:longitudeDMS degrees="056" minutes="58" direction="WEST"/> </nxce:longitude> </nxcm:position> </trackInformation> </asdiMessage> <asdiMessage sourceFacility="CCZM" sourceTimeStamp="2011-03-15T23:57:27Z" trigger="TZ"> <trackInformation> <nxcm:aircraftId>UAL936</nxcm:aircraftId> <nxcm:speed>470</nxcm:speed> <nxcm:reportedAltitude> <nxce:assignedAltitude> <nxce:simpleAltitude>350</nxce:simpleAltitude> </nxce:assignedAltitude> </nxcm:reportedAltitude> <nxcm:position> <nxce:latitude> <nxce:latitudeDMS degrees="44" minutes="43" direction="NORTH"/> </nxce:latitude> <nxce:longitude> <nxce:longitudeDMS degrees="062" minutes="42" direction="WEST"/> </nxce:longitude> </nxcm:position> </trackInformation> </asdiMessage>

拜托,有人帮助我。我想在R做任何事情。 1.解压缩tar文件并解码原始文件成为xml文件 2.读取多个xml中提取的数据 在此先感谢!!!

1 个答案:

答案 0 :(得分:1)

根据您的操作系统,R untar命令可能有所帮助;见?untar。作为使用XML的示例,我们可以加载文档

library(XML)
xml = xmlParse("2011-03-15T23_57_59Z.xml")

然后使用xpath语言(特别是section 2.5)查询它,例如,用于飞机ID和经度

> xpathSApply(xml, "//nxcm:aircraftId", xmlValue)
[1] "UAL966" "UAL936"
> xpathSApply(xml, "//nxce:longitudeDMS/@degrees")
degrees degrees 
  "056"   "062" 

还有一些便利功能,例如xmlToDataFrame,这可能很有趣。