我有一堆.xml文件的节点导致不可思议的并发症。我想删除这些节点,但确保他们的孩子得到保存(而不是数据)。最终我想从每个.xml中获取数据并构建一个数据框。看起来xmlTreeParse和xmlToList一起会有所帮助,但后者只适用于扁平结构。我已经玩弄了unlisting来自xmlToList的输出,然后将其转换为数据帧,但输出有点时髦。删除不需要的XML节点
我想过写一个函数要经过的所有文件,并删除我不想,但是我不知道如何在R.
任何建议,做到这一切的标签?
我有一堆.xml文件的节点导致不可思议的并发症。我想删除这些节点,但确保他们的孩子得到保存(而不是数据)。最终我想从每个.xml中获取数据并构建一个数据框。看起来xmlTreeParse和xmlToList一起会有所帮助,但后者只适用于扁平结构。我已经玩弄了unlisting来自xmlToList的输出,然后将其转换为数据帧,但输出有点时髦。删除不需要的XML节点
我想过写一个函数要经过的所有文件,并删除我不想,但是我不知道如何在R.
任何建议,做到这一切的标签?
在XSLT中执行起来很简单。这增加了身份转换:
<xsl:template match="poop">
<xsl:apply-templates select="node()"/>
</xsl:template>
使用XML的hastens the coming of the Elder Gods正则表达式,因此不推荐。
看看这是你在找什么,你可以使用XML
包来自CRAN
来解析XML文档。您可以使用下面的战术,只得到了<poop>
标签:
me<-xmlTreeParse(filename,useInternalNodes=T)
pooptags<-xpathApply(me,"//poop")
pooptags将包含以下信息:
<poop>
<P3a_Village1>dzemeni</P3a_Village1>
<P4_HousholdNumber/>
<P5_VisitNumber>2</P5_VisitNumber>
</poop>
在R中可以采用粘贴命令与<?xml version='1.0' ?>
粘贴,并将其写入截断的文件。或者您也可以进一步像P3a_Village1从使用xpathApply这样的XML文件中提取信息:
village<-xpathApply(me,"//poop/P3a_Village1")
我希望解决的办法是你在找什么。请让我知道它是否有帮助。
感谢您的帮助。我认为这将是一种流行的方式,因此我决定使用xslt脚本。好吧... – scottyaz 2010-06-28 01:42:57
如果您在请求的更改之前和之后提供了xml的示例,它可能会有所帮助。 – 2010-06-27 12:44:11
以下是我开始使用的xml的摘录: <?xml version ='1.0'?> SWES_2 0.0.2 formVersion> 2010-06-26T18: 19:02.598 2010-06-26T18:21:11.742 梅丽莎 P0_SurveyorName> 3 P0a_DeviceNumber> 2010-06-26 1 P2_District> dzemeni 2 P5_VisitNumber> 684656856 0 Q4_EducationEver> –
scottyaz
2010-06-27 12:56:52
我想简单地去掉 标签 –
scottyaz
2010-06-27 12:57:18