извлечь определенное значение из XML-документа в R - PullRequest
0 голосов
/ 28 июня 2018

мой XML-документ выглядит так

<contrib-group>
        <contrib contrib-type="author" xlink:type="simple">
           <string-name>
              <given-names>Anagha K.</given-names>
              <x xml:space="preserve"> </x>
              <surname>Matapurkar</surname>
           </string-name>
           <x xml:space="preserve"/>
        </contrib>
        <contrib contrib-type="author" xlink:type="simple">
           <string-name>
              <given-names>Milind G.</given-names>
              <x xml:space="preserve"> </x>
              <surname>Watve</surname>
           </string-name>
           <x xml:space="preserve"/>
        </contrib>
        <aff id="aff_1">Life Research Foundation, 10 Pranav, 1000/6‐c, Navi Peth, Pune 411 030, India</aff>
        <x xml:space="preserve"/>
     </contrib-group>

У меня есть несколько XML-файлов, каждый из которых имеет одинаковую структуру и я решил запустить код в цикле для всех.

я хочу извлечь информацию о членстве из каждого файла

я написал написать выражение xpath как это в R в функции который я зациклить на всех файлах, используя ldply

библиотеки, которые я использовал, это XML, plyr

doc <-xmlToDataFrame(nodes=getNodeSet(tempdoc,"//aff"))

где tempdoc - разобранный XML-документ

я получаю ошибку дубликатов подписок на столбцы.

Неправильно ли указано выражение xpath? или некоторые могут дать мне исправление для синтаксиса xpath в приведенной выше строке кода r?

1 Ответ

0 голосов
/ 28 июня 2018

С xml2 упаковка:

library(xml2)
xml_as_list <- as_list(read_xml("theFile.xml"))
xml_as_list[["contrib-group"]][["aff"]][[1]]

дает:

"Life Research Foundation, 10 Pranav, 1000/6‐c, Navi Peth, Pune 411 030, India"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...