xml - 字符串中的子字符串匹配
问题描述
我是 XSL 的新手,我在一个变量中有一个主字符串,在另一个变量中有一个子字符串。
我已经提到包含实现这一功能的功能,但对我没有帮助。:(
前任:
<xsl:variable name="mainstring" select="ZXVFABEMABCD"/>
<xsl:variable name="substring" select="ABCD" />
<xsl:if test="contains($mainstring,$stubstring)">
do some operation
即使像“ZBCD”这样的子字符串,上述条件也始终为真,因为不管字母的顺序如何,contains() 函数都会为字母的存在返回 true。
请帮助我找到完全存在的子字符串以检查条件。
只要角色出现,总是会变为真。
解决方案
您忘记将字符串放在引号中。因为像上面一样,“字符串”被视为 QNames(元素名称)并返回空(除非它们偶然出现在 XML 中),这被解释为空字符串。如果第二个参数是空字符串,则contains
返回 TRUE。
添加引号可以解决问题,contains(...)
并将按预期工作:
<xsl:variable name="mainstring" select="'ZXVFABEMABCD'"/>
<xsl:variable name="substring" select="'ABCD'" />
<xsl:if test="contains($mainstring,$substring)">
do some operation
</xsl:if>
推荐阅读
- sql - 地理问题
- google-apps-script - 如何对部署的 Google App 脚本进行身份验证?
- angular - 在primeng-treetable分页器中添加一个按钮
- arrays - 如何根据我的预期值将 JSON 转换为 URL 参数字符串?
- azure - 重启所有节点和master后无法在acs-kubernetes中创建服务
- javascript - 当Angular中有一个带有验证的输入框时,需要点击两次才能将控制权转移到单选按钮
- python - 如何为投资组合制作多个随机权重?
- php - 如果语句不适用于 Laravel 中的 API
- floating-point - 以`.0`结尾的浮点数可以被视为数学整数吗
- laravel - Vuejs Laravel Passport - 如果访问令牌过期我该怎么办?