2015-02-23 7 views
0

Учитывая следующее (квази) XML-структуру РЬЕГО патентного сервера Е:Выбор xml_nodes для патентных данных с использованием библиотеки (rvest) и библиотек (XML) в R

<ep-patent-document id="EP79301547B1" file="EP79301547NWB1.xml" lang="en" country="EP" doc-number="0007815" kind="B1" date-publ="19871021" status="n" dtd-version="ep-patent-document-v1-1"> 
<SDOBI lang="en"> 
<B000>...</B000> 
<B100>...</B100> 
<B200> 
<B210>79301547.0</B210> 
<B220> 
<date>19790801</date> 
</B220> 
<B240/> 
<B250>en</B250> 
<B251EP>en</B251EP> 
<B260>en</B260> 
</B200> 
<B300>...</B300> 
<B400>...</B400> 
<B500>...</B500> 
<B700>...</B700> 
<B800>...</B800> 
</SDOBI> 
<!-- EPO <DP n="1"> --> 
<!-- EPO <DP n="2"> --> 
<description id="desc" lang="en">...</description> 
<claims id="claims01" lang="en">...</claims> 
<claims id="claims02" lang="de">...</claims> 
<claims id="claims03" lang="fr">...</claims> 
</ep-patent-document> 

Я хотел бы, чтобы выбрать номер в узел «B210» и текст в «описании».

Использование

library(httr) 
library(rvest) 
library(XML) 
library(magrittr) 

files1993 <- list.files("~/Downloads", full.names=TRUE, recursive=TRUE) 
y <- files1993[1] 
parse1993 <- htmlParse(y) 

parse1993 %>% xml_nodes("description") 
parse1993 %>% xml_nodes("SDOBI") %>% xml_nodes("B210") 

Я получаю текст описания, но ничего для B210. Фактически, команда не будет работать для любой информации, указанной в. Нужно ли мне преобразовывать информацию, содержащуюся в SDOBI, в текст? Я немного здесь потерялся. Любая помощь высоко ценится.

+0

Почему бы не использовать 'xmlParse'? 'parse1993%>% xml_nodes (" SDOBI ")%>% xml_nodes (" B210 ")' отлично работает – hrbrmstr

+1

Попробуйте 'xml2' из Hadley:' library (xml2); xml <- xml ('... your.example ... '); xml_text (xml_find (xml, "// B210 | // description")); # [1] "79301547.0" "..." '. – lukeA

ответ

0

Прошу прощения, что этот ответ немного запоздал, но он хотел бы ответить в любом случае, если кому-то нужна помощь по этой же теме.

Прежде всего, работа с EPO api - огромная боль в прикладе. Там xml - медведь, и данные могут быть довольно грязными и непоследовательными.

PatentData.io представляется лучшим вариантом. У них есть наборы данных EPO, очищены и выпущены через современный RESTful JSON api. rjson намного проще работать. Они также предоставляют некоторые интересные расширенные функции поиска и аналитики, если вы хотите получить фантазию.

Они все еще в бета-версии, но я думаю, что они активно берут новых бета-пользователей. Проверьте это.

 Смежные вопросы

  • Нет связанных вопросов^_^