【发布时间】:2022-01-25 15:07:40
【问题描述】:
我正在尝试在 Excel 的 FILTERXML() 函数中提出一个干净的 Xpath 1.0 表达式来返回具有以下要求的节点:
- 节点必须有一个兄弟节点(以下),其开头的三个字符完全相同。
关键是要找出数据中是否存在某种程度的相似性。想象一下以下示例数据:
<t>
<s>ABCDEF</s>
<s>GHIJKL</s>
<s>MNOPQR</s>
<s>GHISTU</s>
<s>ABVWXY</s>
</t>
从这里,我想返回 GHIJKL,因为它的前 3 个字符“GHI”位于倒数第二个节点的开头。
我一直在尝试将starts-with()、substring() 和count() 之类的函数拼凑在一起,但未能正确完成。我的(显然是错误的)尝试:
//s[count(following::*[starts-with(., substring(<placeholder>, 1,3))]>0]
我不确定是否有可能和写什么而不是占位符或如何修改查询以告诉我想要的表达式取每个节点最左边的三个字符,测试后面的是否有重复。
【问题讨论】: