R XML XPath – 具有多个条件的getNodeSet
发布时间:2020-12-16 22:57:51 所属栏目:百科 来源:网络整理
导读:我是XPath的新手 – 请放轻松我. 无法在目标页面上为不具有大量结构的元素提取XPath. 数据集是新泽西州学校report cards.个人成绩单看起来像this 我已经想出如何提取具有摘要标记的表: url - paste("http://education.state.nj.us/rc/rc11/rcreport.php?c="
我是XPath的新手 – 请放轻松我.
无法在目标页面上为不具有大量结构的元素提取XPath. 数据集是新泽西州学校report cards.个人成绩单看起来像this 我已经想出如何提取具有摘要标记的表: url <- paste("http://education.state.nj.us/rc/rc11/rcreport.php?c=",all_sch[i,1],";d=",2],";s=",3],sep = '') doc = htmlParse(url) admin_salaries = getNodeSet(doc,'//table[@summary="Administrative Salaries and Benefits"]') 但是在没有很多额外识别信息可以解决的情况下遇到麻烦. 例如,具有学校名称和分区的表格如下所示: <table cellpadding="0" cellspacing="0"> <tr> <td><strong>SCHOOL:</strong></td> <td> New Jersey Ave</td> </tr> <tr> <td><strong>COUNTY:</strong></td> <td> Atlantic</td> </tr> <tr> <td><strong>DISTRICT:</strong></td> <td> Atlantic City</td> </tr> </table> 我的策略是’找到表是节点并且有文本COUNTY Reading尽可能多地关于XPath,我正在尝试这个: names = getNodeSet(doc,'//table and //*[contains(text(),"COUNTY")]') 但它不是返回表节点,而是给我一个布尔值TRUE值. 所以,问题是:我如何使用XPath查找具有COUNTY和SCHOOL文本的表? 我已经尝试了很多其他策略,但收效甚微.其他人建议的一种方法就是使用以下方法提取每个表数据单元: xpathApply( htmlTreeParse(url,useInt=T),"//td",function(x) xmlValue(x)) 但是模板对于缺失的数据并不一致 – 不完整的报告具有完全不同的结构,并且元素在2,000个页面中的位置不同. 任何帮助是极大的赞赏! 解决方法
使用xpath,获取所有表
xpathSApply( doc,"//table[contains(.,'SCHOOL:') and contains(.,'COUNTY') ]",xmlValue) 得到这一行 xpathSApply( doc,"//tr/td[contains(.,'SCHOOL:') and contains(.,xmlValue) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |