Я новичок в изучении и пытаюсь понять xpath, используя R. Моя цель - создать вектор людей с этого сайта. Я могу сделать это, используя:
r<-htmlTreeParse(e) ## e is after getURL
g.k<-(r[[3]][[1]][[2]][[3]][[2]][[2]][[2]][[1]][[4]])
l<-g.k[names(g.k)=="text"]
u<-ldply(l,function(x) {
w<-xmlValue(x)
return(w)
})
Однако это громоздко, и я бы предпочел использовать xpath. Как мне перейти по пути, указанному выше? Есть ли для этого функция или я могу отправить свой путь, как указано выше?
Я пришел к
xpathApply( htmlTreeParse(e, useInt=T), "//body//text//div//div//p//text()", function(k) xmlValue(k))->kk
Но это оставляет мне много работы по уборке, и я предполагаю, что это можно сделать лучше.
С уважением,
// M
РЕДАКТИРОВАТЬ: Извините за неясность, но я новичок в этом и довольно смущен. К сожалению, документ XML слишком большой, чтобы его можно было вставить. Я предполагаю, что мой вопрос заключается в том, существует ли какой-либо простой способ найти имя этих узлов / структуры документа, кроме использования источника представления? Я подошел немного ближе к тому, что мне нравится:
getNodeSet(htmlTreeParse(e, useInt=T), "//p")[[5]]->e2
дает мне список того, что я хочу. Однако все еще в xml с тегами br. Я думал, что работает
xpathApply(e2, "//text()", function(k) xmlValue(k))->kk
предоставит список, который позже может быть не включен в список. однако в нем содержится больше мусора, чем в e2.
Есть ли способ сделать это напрямую:
xpathApply(htmlTreeParse(e, useInt=T), "//p[5]//text()", function(k) xmlValue(k))->kk
Ссылка на веб-страницу: я пытаюсь получить имена и только имена со страницы.
getURL("http://legeforeningen.no/id/1712")