我有一堆.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