You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在OpenRefine中使用GREL从RDF/XML提取skos:closeMatch

解决OpenRefine中从RDF/XML提取skos:closeMatch URI的问题

你之前用value.parseHtml().select('skos|closematch')失败的原因有两个:

  • XML是大小写敏感的,你写的closematch和实际标签closeMatch大小写不匹配
  • RDF/XML属于XML格式,用parseHtml()解析会忽略XML命名空间,应该用专门的XML解析方法

正确的GREL表达式

在OpenRefine中添加新列时,使用以下代码:

value.parseXml().selectNodes("//skos:closeMatch").map(node, node.attr("rdf:resource")).join("; ")

代码解释

  1. value.parseXml():正确解析列中的RDF/XML内容,保留所有命名空间信息
  2. selectNodes("//skos:closeMatch"):通过XPath选择所有带skos命名空间的closeMatch节点
  3. map(node, node.attr("rdf:resource")):遍历每个节点,提取rdf:resource属性中的URI值
  4. join("; "):把所有URI用分号分隔合并成字符串(如果需要保留列表格式,可去掉这部分)

去重版本(可选)

如果你的RDF/XML中有重复的URI,想要只保留唯一值,使用:

value.parseXml().selectNodes("//skos:closeMatch").map(node, node.attr("rdf:resource")).unique().join("; ")

内容的提问来源于stack exchange,提问作者Zayn Sab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:35:22