我正在尝试使用R和xpathSApply从以下html代码中提取日期信息:
</td>
</tr>
<tr
data-row-id="1363827503"
class="future "
data-lat-from="-33.946098"
data-lon-from="151.1772"
data-lat-to="33.94252"
data-lon-to="-118.406998"
data-name-from="Sydney Kingsford Smith Airport"
data-name-to="Los Angeles International Airport"
data-date="2015-03-23"
data-flight=""
data-flight-number="VA1"
>
这是我尝试过的R中的代码:
library(XML)
url<- "http://www.flightradar24.com/data/flights/va1/"
info<- htmlTreeParse(url, useInternalNodes=T)
xpathSApply(info, "//data-date", xmlValue)
返回:list()
我希望它返回:2015-03-23
答案 0 :(得分:2)
这是您感兴趣的文件的一部分:
<tr
data-row-id="1363827503"
class="future "
data-lat-from="-33.946098"
data-lon-from="151.1772"
data-lat-to="33.94252"
data-lon-to="-118.406998"
data-name-from="Sydney Kingsford Smith Airport"
data-name-to="Los Angeles International Airport"
data-date="2015-03-23"
data-flight=""
data-flight-number="VA1"
>
如您所见,data-date
不是元素,它是tr
元素的属性。使用//tr/@data-date
作为XPath表达式来检索data-date
属性。
但请注意,本文档中有多个data-date
属性。要仅检索单个属性,还需要一种方法来标识特定行,例如使用
//tr[@data-row-id="1363827503"]/@data-date
ID 1363827503
在本文档中只出现一次,因此是此tr
元素的唯一标识符。