2017-02-14 92 views
1

我有一個指向不同xml文件的URL列表,我想使用R和xml包從它們中提取一些信息。從URL列表解析xml

我想用for循環做到這一點。 我有這個代碼,但它只給了我最後一個xml(numtotal),我該如何閱讀所有這些代碼?

for (i in seq(from = 1, to = numtotal, by = 1)){ 
    urli <- xmlParse(urls[[i]], useInternalNodes = TRUE) 
    top_numberi <- xmlRoot(urli) 
    GS = data.frame(GS = xpathSApply(top_numberi,"//a//b",xmlValue)) 
} 

其中:

  • urls是7個或更多個URL
  • numtotal列表是另一個列表的長度(數值)
+1

使用'lapply'來代替,因此一切都在列表中。 – alistaire

+1

我不明白那個理由的近距離投票。錯誤很明顯,很容易用少量的代碼來回答。幾乎肯定是重複的,因爲無法爲for循環內部的索引賦值是一個常見的錯誤。 –

回答

1

for循環的每次迭代正在覆蓋您的GS數據幀。代替使用的數據幀的,創建列表循環外

l = list() 

然後在元素填充循環

l[i] = xpathSApply(top_numberi,"//a//b",xmlValue) 

作爲題外話內,這是一個非常基本的問題。在繼續進行之前,您應該閱讀一些標準的R教科書。