R:covert.log到.xml文件

R:covert.log到.xml文件,r,xml,logging,telemetry,R,Xml,Logging,Telemetry,我有一个.log文件(遥测数据),它基本上是一个xml文件。数据如下: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <PostTelemetryRequest xmlns:ns2="urn:com:onstar:global:common:schema:PostTelemetryData:1"> <ns2:PartnerVehicles> <ns2:PartnerVehicle>

我有一个.log文件(遥测数据),它基本上是一个xml文件。数据如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <PostTelemetryRequest xmlns:ns2="urn:com:onstar:global:common:schema:PostTelemetryData:1"> <ns2:PartnerVehicles> <ns2:PartnerVehicle> <ns2:partnerNotificationID>080298234</ns2:partnerNotificationID> <ns2:TelemetryDataDetails Type="EventBased"/> <ns2:TelemetryDataDetails Type="Location"> <ns2:VehicleDataList> <ns2:vehicleDataDetails>Timestamp Latitude Longitude Speed Direction IsIgnOff IgnitionStateChange</ns2:vehicleDataDetails> <ns2:vehicleData> <ns2:telemetryData> <ns2:telemetry>2018-02-12T13:50:12.000Z 35.2386818 -80.9514771 N/A N/A N/A N/A</ns2:telemetry> </ns2:telemetryData> </ns2:vehicleData> </ns2:VehicleDataList> </ns2:TelemetryDataDetails> <ns2:TelemetryDataDetails Type="TripHBHA"/> <ns2:TelemetryDataDetails Type="Diagnostic"> <ns2:DataElementList> <ns2:DataElement> <ns2:Name>PARK_NEUTRAL_CHECK</ns2:Name> <ns2:Value>NOT_PARK</ns2:Value> <ns2:UOM>NA</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:12.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>ODO_READ</ns2:Name> <ns2:Value>75488.53125</ns2:Value> <ns2:UOM>KM</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:12.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Fuel Capacity</ns2:Name> <ns2:Value>49.125</ns2:Value> <ns2:UOM>L</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:12.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Fuel amount</ns2:Name> <ns2:Value>29.475</ns2:Value> <ns2:UOM>L</ns2:UOM> <ns2:Timestamp>N/A</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>NOTIFICATION_ID</ns2:Name> <ns2:Value>T519154342260102_1212_1</ns2:Value> <ns2:UOM>N/A</ns2:UOM> <ns2:Timestamp>N/A</ns2:Timestamp> </ns2:DataElement> </ns2:DataElementList> </ns2:TelemetryDataDetails> </ns2:PartnerVehicle> </ns2:PartnerVehicles> </PostTelemetryRequest><?xml version="1.0" encoding="UTF-8" standalone="yes"?> <PostTelemetryRequest xmlns:ns2="urn:com:onstar:global:common:schema:PostTelemetryData:1"> <ns2:PartnerVehicles> <ns2:PartnerVehicle> <ns2:partnerNotificationID>086421226</ns2:partnerNotificationID> <ns2:TelemetryDataDetails Type="EventBased"/> <ns2:TelemetryDataDetails Type="Location"> <ns2:VehicleDataList> <ns2:vehicleDataDetails>Timestamp Latitude Longitude Speed Direction IsIgnOff IgnitionStateChange</ns2:vehicleDataDetails> <ns2:vehicleData> <ns2:telemetryData> <ns2:telemetry>2018-02-12T13:49:11.000Z 42.3370323 -83.0454407 N/A N/A N N</ns2:telemetry> <ns2:telemetry>2018-02-12T13:49:42.000Z 42.3370323 -83.0454407 N/A N/A N N</ns2:telemetry> <ns2:telemetry>2018-02-12T13:50:43.000Z 42.3370323 -83.0454407 N/A N/A N N</ns2:telemetry> <ns2:telemetry>2018-02-12T13:50:44.000Z 42.3370323 -83.0454407 N/A N/A N N</ns2:telemetry> </ns2:telemetryData> </ns2:vehicleData> </ns2:VehicleDataList> </ns2:TelemetryDataDetails> <ns2:TelemetryDataDetails Type="TripHBHA"/> <ns2:TelemetryDataDetails Type="Diagnostic"> <ns2:DataElementList> <ns2:DataElement> <ns2:Name>ODO_READ</ns2:Name> <ns2:Value>31261.828125</ns2:Value> <ns2:UOM>KM</ns2:UOM> <ns2:Timestamp>2018-02-12T13:49:11.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>CELL_RSSI</ns2:Name> <ns2:Value>MAX</ns2:Value> <ns2:UOM>NA</ns2:UOM> <ns2:Timestamp>2018-02-12T13:49:13.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>CELL_SERVICE</ns2:Name> <ns2:Value>4G_LTE</ns2:Value> <ns2:UOM>NA</ns2:UOM> <ns2:Timestamp>2018-02-12T13:49:13.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>ODO_READ</ns2:Name> <ns2:Value>31261.828125</ns2:Value> <ns2:UOM>KM</ns2:UOM> <ns2:Timestamp>2018-02-12T13:49:42.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>CELL_RSSI</ns2:Name> <ns2:Value>MAX</ns2:Value> <ns2:UOM>NA</ns2:UOM> <ns2:Timestamp>2018-02-12T13:49:44.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>CELL_SERVICE</ns2:Name> <ns2:Value>4G_LTE</ns2:Value> <ns2:UOM>NA</ns2:UOM> <ns2:Timestamp>2018-02-12T13:49:44.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>ODO_READ</ns2:Name> <ns2:Value>31261.828125</ns2:Value> <ns2:UOM>KM</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:13.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>CELL_RSSI</ns2:Name> <ns2:Value>MAX</ns2:Value> <ns2:UOM>NA</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:15.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>CELL_SERVICE</ns2:Name> <ns2:Value>4G_LTE</ns2:Value> <ns2:UOM>NA</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:15.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Oil life</ns2:Name> <ns2:Value>56.862765</ns2:Value> <ns2:UOM>%</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:43.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>ODO_READ</ns2:Name> <ns2:Value>31261.828125</ns2:Value> <ns2:UOM>KM</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:43.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Tire Pressure LF</ns2:Name> <ns2:Value>220</ns2:Value> <ns2:UOM>KPa</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:43.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Tire Pressure RF</ns2:Name> <ns2:Value>220</ns2:Value> <ns2:UOM>KPa</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:43.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Tire Pressure LR</ns2:Name> <ns2:Value>216</ns2:Value> <ns2:UOM>KPa</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:43.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Tire Pressure RR</ns2:Name> <ns2:Value>216</ns2:Value> <ns2:UOM>KPa</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:43.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Fuel Capacity</ns2:Name> <ns2:Value>118.375</ns2:Value> <ns2:UOM>L</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:43.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>CELL_RSSI</ns2:Name> <ns2:Value>MAX</ns2:Value> <ns2:UOM>NA</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:44.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>CELL_SERVICE</ns2:Name> <ns2:Value>4G_LTE</ns2:Value> <ns2:UOM>NA</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:44.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>ODO_READ</ns2:Name> <ns2:Value>31261.828125</ns2:Value> <ns2:UOM>KM</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:44.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>CELL_RSSI</ns2:Name> <ns2:Value>MAX</ns2:Value> <ns2:UOM>NA</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:46.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>CELL_SERVICE</ns2:Name> <ns2:Value>4G_LTE</ns2:Value> <ns2:UOM>NA</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:46.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Fuel amount</ns2:Name> <ns2:Value>33.85525</ns2:Value> <ns2:UOM>L</ns2:UOM> <ns2:Timestamp>N/A</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>NOTIFICATION_ID</ns2:Name> <ns2:Value>T751204345198168_1211_1</ns2:Value> <ns2:UOM>N/A</ns2:UOM> <ns2:Timestamp>N/A</ns2:Timestamp> </ns2:DataElement> </ns2:DataElementList> </ns2:TelemetryDataDetails> </ns2:PartnerVehicle> </ns2:PartnerVehicles> </PostTelemetryRequest>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <PostTelemetryRequest xmlns:ns2="urn:com:onstar:global:common:schema:PostTelemetryData:1"> <ns2:PartnerVehicles> <ns2:PartnerVehicle> <ns2:partnerNotificationID>080595911</ns2:partnerNotificationID> <ns2:TelemetryDataDetails Type="EventBased"/> <ns2:TelemetryDataDetails Type="Location"> <ns2:VehicleDataList> <ns2:vehicleDataDetails>Timestamp Latitude Longitude Speed Direction IsIgnOff IgnitionStateChange</ns2:vehicleDataDetails> <ns2:vehicleData> <ns2:telemetryData> <ns2:telemetry>2018-02-12T13:48:51.000Z 38.7962875 -104.6996994 N/A N/A N N</ns2:telemetry> <ns2:telemetry>2018-02-12T13:49:22.000Z 38.7962875 -104.6996994 N/A N/A N N</ns2:telemetry> <ns2:telemetry>2018-02-12T13:49:53.000Z 38.7962875 -104.6996994 N/A N/A N N</ns2:telemetry> <ns2:telemetry>2018-02-12T13:50:42.000Z 38.7962875 -104.6996994 N/A N/A N N</ns2:telemetry> </ns2:telemetryData> </ns2:vehicleData> </ns2:VehicleDataList> </ns2:TelemetryDataDetails> <ns2:TelemetryDataDetails Type="TripHBHA"/> <ns2:TelemetryDataDetails Type="Diagnostic"> <ns2:DataElementList> <ns2:DataElement> <ns2:Name>ODO_READ</ns2:Name> <ns2:Value>36333.3125</ns2:Value> <ns2:UOM>KM</ns2:UOM> <ns2:Timestamp>2018-02-12T13:48:51.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>ODO_READ</ns2:Name> <ns2:Value>36333.3125</ns2:Value> <ns2:UOM>KM</ns2:UOM> <ns2:Timestamp>2018-02-12T13:49:22.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>ODO_READ</ns2:Name> <ns2:Value>36333.3125</ns2:Value> <ns2:UOM>KM</ns2:UOM> <ns2:Timestamp>2018-02-12T13:49:53.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>ODO_READ</ns2:Name> <ns2:Value>36333.3125</ns2:Value> <ns2:UOM>KM</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:24.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Oil life</ns2:Name> <ns2:Value>88.235325</ns2:Value> <ns2:UOM>%</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:42.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>ODO_READ</ns2:Name> <ns2:Value>36333.3125</ns2:Value> <ns2:UOM>KM</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:42.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Tire Pressure LF</ns2:Name> <ns2:Value>228</ns2:Value> <ns2:UOM>KPa</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:42.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Tire Pressure RF</ns2:Name> <ns2:Value>220</ns2:Value> <ns2:UOM>KPa</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:42.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Tire Pressure LR</ns2:Name> <ns2:Value>220</ns2:Value> <ns2:UOM>KPa</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:42.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Tire Pressure RR</ns2:Name> <ns2:Value>224</ns2:Value> <ns2:UOM>KPa</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:42.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Fuel Capacity</ns2:Name> <ns2:Value>49.125</ns2:Value> <ns2:UOM>L</ns2:UOM> <ns2:Timestamp>2018-02-12T13:50:42.000Z</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>Fuel amount</ns2:Name> <ns2:Value>38.514</ns2:Value> <ns2:UOM>L</ns2:UOM> <ns2:Timestamp>N/A</ns2:Timestamp> </ns2:DataElement> <ns2:DataElement> <ns2:Name>NOTIFICATION_ID</ns2:Name> <ns2:Value>T751204345033629_1211_1</ns2:Value> <ns2:UOM>N/A</ns2:UOM> <ns2:Timestamp>N/A</ns2:Timestamp> </ns2:DataElement> </ns2:DataElementList> </ns2:TelemetryDataDetails> </ns2:PartnerVehicle> </ns2:PartnerVehicles> </PostTelemetryRequest>
...
080298234时间戳经纬度速度方向IsIgnOff点火状态更改2018-02-12T13:50:12.000Z 35.2386818-80.9514771 N/A N/A N/A驻车空档检查非驻车空档2018-02-12T13:50:12.000Z ODO读数75488.53125公里2018-02-12T13:50:12.000Z燃油容量49.125升2018-02-12T13:50:12.000Z燃油量29.475不适用通知编号T519154342260102不适用不适用不适用086421226时间戳经纬度速度方向不适用点火状态更改2018-02-12T13:49:11.000Z 42.3370323-83.0454407不适用不适用不适用2018-02-12T13:49:42.000Z 42.3370323-83.0454407不适用不适用2018-02-12T13:50:43.000Z 42.3370323-83.0454407不适用不适用不适用不适用2018-02-12T13:50:44.000Z 42.3370323-83.0454407 N/A N/A N ODO读取31261.828125 KM 2018-02-12T13:49:11.000Z单元RSSI最大NA 2018-02-12T13:49:13.000Z单元服务4G单元LTE NA 2018-02-12T13:49:13.000Z ODO最大读取31261.828125 KM 2018-02-12T13:49:42.000Z单元RSSI最大NA服务4G单元RSU2018-02-12T13:49:44.000Z ODO读取31261.828125公里2018-02-12T13:50:13.000Z电池RSSI最大NA 2018-02-12T13:50:15.000Z电池服务4G LTE NA 2018-02-12T13:50:15.000Z机油寿命56.862765%2018-02-12T13:50:43.000Z ODO读取31261.828125公里2018-02-12T13:50:50:43.000Z轮胎压力LF 2018-02-12T13:50:43.000Z轮胎压力2018-02-12T13:50:43.000Z胎压LR 216千帕2018-02-12T13:50:43.000Z胎压RR 216千帕2018-02-12T13:50:43.000Z燃料容量118.375升2018-02-12T13:50:43.000Z电池组RSSI最大值NA 2018-02-12T13:50:44.000Z电池组RSU服务4G\U LTE NA最大值2018-02-12T13:50:44.000Z电池组读取31261.828125公里-02-12T13:50:44.000Z电池组RSU2018-02-12T13:50:46.000Z电池服务4G\u LTE NA 2018-02-12T13:50:46.000Z燃料量33.85525升不适用通知号T751204345198168不适用1211不适用不适用
080595911时间戳经纬度速度方向IsIgnOff点火状态更改2018-02-12T13:48:51.000Z 38.7962875-104.6996994 N/A N/A N 2018-02-12T13:49:22.000Z 38.7962875-104.6996994 N/A N 2018-02-12T13:49:53.000Z 38.7962875-104.6996994 N/A N/A N 2018-02-12T13:50:42.000Z 38.7962875-104.69964 N/A读取36333.3125公里2018-02-12T13:48:51.000Z奥多读数36333.3125公里2018-02-12T13:49:22.000Z奥多读数36333.3125公里2018-02-12T13:49:53.000Z奥多读数36333.3125公里2018-02-12T13:50:24.000Z机油寿命88.235325%压力RF 220千帕2018-02-12T13:50:42.000Z胎压LR 220千帕2018-02-12T13:50:42.000Z胎压RR 224千帕2018-02-12T13:50:42.000Z燃料容量49.125升2018-02-12T13:50:42.000Z燃料量38.514升无通知号T751204345033629无
...
为了让R读取.xml文件,首先我需要将.log文件转换为.xml。我想要的输出是:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<PostTelemetryRequest
   xmlns:ns2="urn:com:onstar:global:common:schema:PostTelemetryData:1">
   <ns2:PartnerVehicles>
       <ns2:PartnerVehicle>
            <ns2:partnerNotificationID>080298234</ns2:partnerNotificationID>
            <ns2:TelemetryDataDetails Type="EventBased"/>
            <ns2:TelemetryDataDetails Type="Location">
...

080298234
...

我能够以某种方式读取R中的.xml文件,但无法将R中的.log文件转换为.xml。我尝试的另一种选择是将.log的内容复制到一个专门设计的网站中的.xml,但我希望r代码能够完成这项工作,因为我需要读取大量的文件。

如果所有这些内容都在一个文档中,那就不是一个格式良好的xml文件,因为它可能在第一行出现一次或根本没有出现。DOM库,包括遵循W3C标准的R库,由于其格式不规范,应该无法正确解析此类文档。现在,每一行似乎都是XML标记。因此,您可以将每一行像文本文件一样读入R,然后作为单独的XML文件输出。但是,您并没有解释每一行如何构成一个XML输出。