Разбор XML-файлов с одноименными подузлами

вы можете использовать атрибут загрузки в теге ...


подробнее: https://developer.mozilla.org/en/HTML/element/a# атр-скачать

2
задан user3919790 17 March 2019 в 22:06
поделиться

1 ответ

Вот решение, основанное на этом вопросе / ответе: R XML - объединение родительских и дочерних узлов (с одинаковым именем) в фрейм данных

library(xml2)
library(dplyr)
page<-read_xml('<resultset>
  <row>
         <column name="indexpatient">2</column>
         <column name="height" null="true"></column>
         <column name="ParameterMeasure">Cardiac/MM/Dimension/LVIDd</column>
         <column name="ParameterId">MM/LVIDd</column>
         <column name="ResultIdentifier">Average</column>
         <column name="ResultValue">0.05617021151</column>
         </row>
         <row>
         <column name="indexpatient">2</column>
         <column name="height" null="true"></column>
         <column name="ParameterMeasure">Cardiac/MM/Dimension/LVIDd</column>
         <column name="ParameterId">MM/LVIDs</column>
         <column name="ResultIdentifier">Measurement No. 1</column>
         <column name="ResultValue">0.05341702</column>
         </row>
         </resultset>')


rows<- page %>% xml_find_all('//row') 

dfs<-lapply(rows, function(node){
   #find the attr value from all child nodes
   names<-node %>% xml_children() %>% xml_attr("name")  
   #find all values
   values<-node %>% xml_children() %>% xml_text()

   #create data frame and properly label the columns
   df<-data.frame(t(values), stringsAsFactors = FALSE)
   names(df)<-names
   df
})

#bind together and add uid to final dataframe.
answer<-bind_rows(dfs)
answer

# indexpatient height           ParameterMeasure ParameterId  ResultIdentifier   ResultValue
# 1            2        Cardiac/MM/Dimension/LVIDd    MM/LVIDd           Average 0.05617021151
# 2            2        Cardiac/MM/Dimension/LVIDd    MM/LVIDs Measurement No. 1    0.05341702
> 
0
ответ дан Dave2e 17 March 2019 в 22:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: