使用XML-Package在R中使用XPath检索图像源

时间:2012-06-16 20:55:36

标签: r xpath

我想在下面的HTML代码块中检索图像源,但找不到合适的语法。

library(XML)
library(RCurl)
script <- getURL("http://www.floraweb.de/pflanzenarten/druck.xsql?suchnr=4346")
(doc <- htmlParse(script))


<div class="divider"><hr></div>
<div id="contentblock"><div id="content">
<h1>Alle Angaben</h1>
<p>Zu der von Ihnen gewählten Pflanzenart liegen folgende Informationen vor:</p>
<p><a href="../glossar.html#bname">Wissenschaftlicher Name</a>: Poa badensis agg. </p>
<p><a href="../glossar.html#bdeu">Deutscher Name</a>: Artengruppe Badener Rispengras</p>
<p><a href="../glossar.html#bfam">Familienzugehörigkeit</a>: Poaceae, Süßgräser</p>
<p><a href="../glossar.html#bsta">Status</a>: keine Angaben </p>
<p class="centeredcontent"><img border="0" src="../bilder/Arten/dummy.tmb.jpg"></p>

期望的结果: “../ BILDER / Arten / dummy.tmb.jpg”

非常感谢任何指针!

2 个答案:

答案 0 :(得分:2)

尝试以下方法:

script <- getURL("http://www.floraweb.de/pflanzenarten/druck.xsql?suchnr=4346")
doc <- htmlTreeParse(script,useInternalNodes=T)
img<-xpathSApply(doc,'//*/p[@class="centeredcontent"]/img',xmlAttrs)
> img[2]
[1] "../bilder/Arten/dummy.tmb.jpg"

可能需要使用内部表示

编辑:

我只是查找htmlParse及其等同于htmlTreeParse(useInternalNodes=T)

@Martin摩根感谢已在下面添加

doc <- htmlParse("http://www.floraweb.de/pflanzenarten/druck.xsql?suchnr=4346")
xpathSApply(doc, '//*/p[@class="centeredcontent"]/img/@src')

答案 1 :(得分:0)

使用

//div[@id='contentblock']
   /div/p[@class='centeredcontent']
         /img/@src

这会选择srcp个元素的值为class且{(1}}元素)为{$ 1}}元素的"centeredcontent"属性p div的孩子,div属性的值为“contentblock”。

如果您想直接获取此属性的值,请使用

id