我有一個具有相同結構的多個xml文件的列表。他們中的一些人有結構錯誤,所以他們無法閱讀,我不能手動控制他們,因爲有太多的文件。我知道我需要暗示try或trycatch函數,我試圖理解它們,但我不瞭解如何在我的案例中精確地使用它們。爲了讓示例容易,我只是想將它們全部轉換爲csv。如何在讀取xml文件時處理錯誤R
library(XML)
k <- 1
Initial.files<- list.files("/My/Initial/Folder")
for(i in initial.files){
data<-dataTable(xmlToDataFrame(xmlParse(i)))
write.csv(data, file = paste("data",(k)".csv"))
k <- k+1
}
我通常得到的錯誤看起來像:
Start tag expected, '<' not found
Error in xmlToDataFrame(xmlParse(i)) :
error in evaluation the argument 'doc' in selecting a method for function 'xmlToDataFrame': Error 1: Start tag expected, '<' not found
來處理我的問題,我要改寫我的代碼五號線(我知道,這是不對的):
data<- if(try(dataTable(xmlToDataFrame(xmlParse(i)))!= "try-error")
else{ haven't looked close to this because i didn't got that far...}...
我希望它讀取文件,並給我一個文件路徑的列表,它不會被讀取。
的XML文件的結構是這樣的:
<ROWSET>
<ROW>
<line1>asdf</line1>
<line2>ghjk</line2>
</ROW>
</ROWSET>
功能不錯。沒有測試過,但看起來很整齊。 –
這不就是什麼tryCatch確實 – rawr
以一種優雅的方式,因爲你使用一個裝飾器incorporing錯誤代碼處理的。 –