У меня есть 155 XML-файлов, которые нужно импортировать в R в качестве фреймворка данных. Я мало знаю об xml и испытываю трудности с получением узлов.Несколько XML-файлов в dataframe в R
Я хотел бы написать функцию, чтобы получить все данные в «d2p1: KeyValueOfintEpisodesmiwmOyvC»
Вот мой R код:
library(XML)
xml_to_df<-function(xmlfile){
results <- xmlParse(xmlfile)
df <- xmlToDataFrame(nodes = getNodeSet(results, "//CardEpisodes/d2p1:KeyValueOfintEpisodesmiwmOyvC"))
return(df)
}
my_files<-list.files(pattern="\\.xml$")
my_data<-lapply(my_files,xml_to_df)
new_df<-bind_rows(my_data)
Этот код должен быть в состоянии объединить все свои XML-файлы в моем рабочего каталога и помещать их в один фрейм данных.
ошибка, что я получил это:
XPath Ошибка: Undefined префикс пространства имен
XPath ошибка: Invalidexpression
Я думаю, что моя ошибка должна быть в этой строке:
df <- xmlToDataFrame(nodes = getNodeSet(results, "//CardEpisodes/d2p1:KeyValueOfintEpisodesmiwmOyvC"))
Как установить узлы?
Большое вам спасибо за помощь!
[Редактировать]
<?xml version="1.0"?>
<CPRCard xmlns="http://schemas.datacontract.org/2004/07/CPRcardViewer" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" z:Id="i1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<CardEpisodes xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:KeyValueOfintEpisodesmiwmOyvC>
<d2p1:Key>0</d2p1:Key>
<d2p1:Value>
<AdqDepth>4</AdqDepth>
<AdqRate>64</AdqRate>
<AvgDepth>39</AvgDepth>
<card z:Ref="i1"/>
</d2p1:Value>
</d2p1:KeyValueOfintEpisodesmiwmOyvC>
<d2p1:KeyValueOfintEpisodesmiwmOyvC>
<d2p1:Key>1</d2p1:Key>
<d2p1:Value>
<AdqDepth>17</AdqDepth>
<AdqRate>28</AdqRate>
<AvgDepth>45</AvgDepth>
<card z:Ref="i1"/>
</d2p1:Value>
</d2p1:KeyValueOfintEpisodesmiwmOyvC>
</CardEpisodes>
</CPRCard>
Pls вставить копию -able образец xml-файла – GGamba
@GGamba Я отредактировал сообщение и добавил образец для копирования xml-файла. Я спрятал некоторые данные, потому что он слишком длинный. Это нормально? –