R:读取XML文件并删除具有特定属性的标签

时间:2015-09-03 15:09:07

标签: xml r

我有以下XML文件(只是摘录):

catch

现在我的上一步将所有<?xml version='1.0' encoding='UTF-8'?> <osm version="0.6" generator="Osmosis 0.44.1"> <node id="1" version="1" timestamp="2015-09-03T12:41:49Z" lat="11.7889317" lon="11.0905799"> <tag k="ID_2" v="141411"/> <tag k="FullName" v=""/> <tag k="OID" v="1111"/> <tag k="NAME" v="name"/> <tag k="AdditionalInformation" v=""/> <tag k="id" v="1234567890"/> <tag k="shortname" v=""/> <tag k="NR" v=""/> </node> <way id="9"> <nd ref="10"/> <nd ref="11"/> <nd ref="12"/> <nd ref="13"/> <tag k="ID_2" v=""/> <tag k="FullName" v="Somefullname"/> <tag k="OID" v="358"/> <tag k="NAME" v=""/> <tag k="AdditionalInformation" v=""/> <tag k="id" v="71358"/> <tag k="shortname" v="MUC"/> <tag k="NR" v="50"/> </way> 属性添加到所有节点和方式。我现在需要的是删除k=出现的所有标签,例如:

在节点标记中:

v=""

以及标签:

<tag k="shortname" v=""/>
<tag k="NR" v=""/>

使用R和<tag k="ID_2" v=""/> <tag k="NAME" v=""/> 并将所有内容保存回打开的XML文件中。由于XML package属性可以更改,如果有一个解决方案,我可以使用k=搜索标记并删除它出现的标记,而不必搜索像{{{{{ 1}}。

1 个答案:

答案 0 :(得分:0)

您可以使用removeNodes然后保存

removeNodes(doc["//node/tag[@v='']"])
removeNodes(doc["//way/tag[@v='']"])