最近老板给了个xml文件想把里面的数据提取出来做个平滑曲线图,因为xml文件是utf-16be编码的,在notpad++编辑器打开是一堆乱码,哎,没办法先用perl进行转码然后提取数据再调用R作图,
xml文件如下:
<?xml version="1.0" encoding="UTF-16BE"?>
<!DOCTYPE oif_file SYSTEM "http://www.dcs.warwick.ac.uk/~gmb/oifml.dtd">
<oif_file>
<odmg_object oid="T2904">
<class>jyd.collection.KVPair
</class>
<contents>
<attribute name="key">
<value><string val="Id"/>
</value>
</attribute>
<attribute name="value">
<value><string val="2020.07.17_16.21.03_460529-1"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T2912">
<class>jyd.collection.StorableList
</class>
<contents>
<value><string val="History"/>
</value>
<value><string val="2020"/>
</value>
<value><string val="2020.07"/>
</value>
<value><string val="2020.07.17_16.21.03_460529-1"/>
</value>
</contents>
</odmg_object>
<odmg_object oid="T2905">
<class>jyd.collection.KVPair
</class>
<contents>
<attribute name="key">
<value><string val="path"/>
</value>
</attribute>
<attribute name="value">
<value><jyd.collection.StorableList val="T2912"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T2973">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="0.9066799879074097"/>
</value>
</attribute>
<attribute name="y">
<value><double val="12.680500030517578"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T2976">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="0.9900199770927429"/>
</value>
</attribute>
<attribute name="y">
<value><double val="13.222900390625"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T2977">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="1.0066800117492676"/>
</value>
</attribute>
<attribute name="y">
<value><double val="13.636899948120117"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T2983">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="1.190019965171814"/>
</value>
</attribute>
<attribute name="y">
<value><double val="16.09630012512207"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T2985">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="1.2066899538040161"/>
</value>
</attribute>
<attribute name="y">
<value><double val="16.07390022277832"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T2987">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="1.7900300025939941"/>
</value>
</attribute>
<attribute name="y">
<value><double val="15.82040023803711"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T2989">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="1.806689977645874"/>
</value>
</attribute>
<attribute name="y">
<value><double val="15.722599983215332"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T2992">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="1.9566999673843384"/>
</value>
</attribute>
<attribute name="y">
<value><double val="15.974300384521484"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T2993">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="2.4066898822784424"/>
</value>
</attribute>
<attribute name="y">
<value><double val="14.015399932861328"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T2995">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="2.573349952697754"/>
</value>
</attribute>
<attribute name="y">
<value><double val="13.376500129699707"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T2997">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="2.5941898822784424"/>
</value>
</attribute>
<attribute name="y">
<value><double val="13.413700103759766"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T3000">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="3.031680107116699"/>
</value>
</attribute>
<attribute name="y">
<value><double val="12.785200119018555"/>
</value>
</attribute>
</contents>
</odmg_object>
<odmg_object oid="T3001">
<class>com.smallplanet.jyd.JYDPoint
</class>
<contents>
<attribute name="x">
<value><double val="3.156680107116699"/>
</value>
</attribute>
&l