使用R/XML筛选保留含指定字符串的XML节点 - 网页抓取
使用R/XML筛选含特定字符串的XML节点
核心思路
借助XPath的contains()函数定位包含目标字符串的节点,通过逻辑运算符实现多关键词匹配,精准保留需要的<tr>节点。
代码实现
- 加载XML工具包:
library(XML)
- 定义关键词并构造筛选逻辑:
# 设置需要匹配的关键词列表 target_terms <- c("Fiscal Year End", "Term") # 拼接XPath查询语句,匹配包含任意关键词的<tr>节点 xpath_query <- paste0( "tr[td[contains(text(), '", paste(target_terms, collapse="' or contains(text(), '"), "')]]" ) # 从XML对象paragraph中筛选符合条件的节点 filtered_tr_nodes <- getNodeSet(paragraph, xpath_query)
补充说明
- 上述XPath语句的逻辑是:筛选所有
<tr>节点,要求其下至少有一个<td>的文本包含指定关键词。 - 如果
paragraph本身就是<tr>节点的集合,可将XPath语句调整为:
xpath_query <- paste0( ".//td[contains(text(), '", paste(target_terms, collapse="' or contains(text(), '"), "')]/.." )
这里的..表示选中<td>的父节点(也就是目标<tr>节点)。
内容的提问来源于stack exchange,提问作者js80
相关产品推荐
相关产品推荐

