Xml XSL包含一个参数,如果有任何匹配项,则返回true

Xml XSL包含一个参数,如果有任何匹配项,则返回true,xml,xslt,Xml,Xslt,嘿,我希望下面的任何部分匹配时都返回true(例如,它应该返回true,因为它包含randomstuff,即使第一部分不匹配) 干杯这里有一个可能(不是很有效)的算法: (1) 查找两个字符串中出现的所有字符。称之为公共子集 (2) 在这两个字符串中,查找仅由公共子集中的字符组成的所有子字符串 (3) 查找两个集合中的子字符串 (4) 其中,最长的时间 (5) 如果超过某个阈值,则报告成功 但是,我不打算在生成工作代码方面做更多的工作,因为我强烈怀疑您没有充分考虑需求。在编写代码之前,我想知道您

嘿,我希望下面的任何部分匹配时都返回true(例如,它应该返回true,因为它包含randomstuff,即使第一部分不匹配)

干杯

这里有一个可能(不是很有效)的算法:

(1) 查找两个字符串中出现的所有字符。称之为公共子集

(2) 在这两个字符串中,查找仅由公共子集中的字符组成的所有子字符串

(3) 查找两个集合中的子字符串

(4) 其中,最长的时间

(5) 如果超过某个阈值,则报告成功


但是,我不打算在生成工作代码方面做更多的工作,因为我强烈怀疑您没有充分考虑需求。在编写代码之前,我想知道您想要实现什么。另外,虽然在XSLT 2.0中尝试这一点是非常可行的,但XSLT 1.0解决方案将非常奇怪。

您是否仔细考虑过这一点?究竟什么构成“匹配”?似乎在你的方法中,哪怕只有一个普通字符也足够了请注明XSLT 1.0或2.0。最好的方法是将两个字符串合并,并检查该字符串中是否有重复的对。@usermesamjosein,以及该操作的具体方式?—在“otherrandomstuffblargrandomstuff”字符串中,使用循环进行字符计数-跳过计数小于2的字符-组合剩余的单词并检查字符组合是否重复。@usermesamjosein“剩余单词”是什么?IIUC,您的测试将返回“aa”和“bb”的阳性结果。如果没有,为什么不把它作为我们可以遵循的实际代码的答案发布呢?如果有一个阈值,那么就没有必要寻找最长的匹配。您可以在
contains()
-的
b-n+1
迭代中找到(布尔)答案,其中
b
是较短字符串的字符串长度,
n
是阈值。在XSLT1.0中完全可行。
contains('otherrandomstuff', 'blargrandomstuff')