Учитывая следующее (квази) 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, в текст? Я немного здесь потерялся. Любая помощь высоко ценится.
Почему бы не использовать 'xmlParse'? 'parse1993%>% xml_nodes (" SDOBI ")%>% xml_nodes (" B210 ")' отлично работает – hrbrmstr
Попробуйте 'xml2' из Hadley:' library (xml2); xml <- xml ('... your.example ... '); xml_text (xml_find (xml, "// B210 | // description")); # [1] "79301547.0" "..." '. – lukeA