在 GREL 中提取具有特定属性的 HTML 标签

Extracting HTML tags with specific attributes in GREL

我可以在标签第一次出现时轻松提取它

<skos:prefLabel> Espitaleta, Lina </skos:prefLabel>

并且次出现:

<skos:prefLabel> Espitaleta, Lina </skos:prefLabel>
<skos:prefLabel xml:lang="en-US"> Espitaleta, Lina </skos:prefLabel>
<skos:prefLabel xml:lang="fr-FR"> Lina Espitaleta </skos:prefLabel>

但是如何只提取那些具有特定属性的标签?

<skos:prefLabel xml:lang="fr-FR"> Lina Espitaleta </skos:prefLabel>

谢谢

根据您的示例,我猜您正在寻找特定的属性值,而不仅仅是一个属性。

GREL 实现在内部使用 JSoup,因此您想查看他们的 selector syntax 以了解如何执行此操作。大致如下:

value.parseHtml().select(your selector here)

应该可以满足您的需求。在处理标签名称和属性名称中处理方式不同的名称空间时有细微差别,因此您需要类似的东西:

value.parseHtml().select('skos|prefLabel[xml:lang="fr-FR"]')

如果你真的是指属性,而不是属性值,你可以将其简化为:

value.parseHtml().select('skos|prefLabel[xml:lang]')