加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – 如何与xslt中的多个字符串进行比较

发布时间:2020-12-16 07:55:25 所属栏目:百科 来源:网络整理
导读:为了将xml字符串值与多个字符串进行比较,我正在执行以下操作. xsl:if test="/Lines/@name = 'John' or /Lines/@name = 'Steve' or /Lines/@name = 'Marc' " 任何人都可以告诉我,而不是在上述情况下使用’或’,如何使用xslt来检查字符串是否存在于一组字符串
为了将xml字符串值与多个字符串进行比较,我正在执行以下操作.
<xsl:if test="/Lines/@name = 'John' or /Lines/@name = 'Steve' or /Lines/@name = 'Marc' " >

任何人都可以告诉我,而不是在上述情况下使用’或’,如何使用xslt来检查字符串是否存在于一组字符串中.

谢谢.

这样做的三种方式:

>使用管道(或其他适当的字符)分隔的字符串

<xsl:template match=
  "Lines[contains('|John|Steve|Mark|',concat('|',@name,'|')
                 )
         ]
  ">
     <!-- Appropriate processing here -->
 </xsl:template>

0.2.测试外部传递的参数.如果参数不是外部设置的,而且我们使用XSLT 1.0,则需要使用xxx:node-set()扩展函数将其转换为正常的节点集,然后才能访问它的子节点

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <!-- externally-specified parameter -->
 <xsl:param name="pNames">
  <n>John</n>
  <n>Steve</n>
  <n>Mark</n>
 </xsl:param>

 <xsl:template match="Lines">
  <xsl:if test="@name = $pNames/*">
     <!-- Appropriate processing here -->
    </xsl:if>
 </xsl:template>
</xsl:stylesheet>

0.3.在XSLT 2.0中与一串字符串进行比较

<xsl:template match="Lines[@name=('John','Steve','Mark')]">
     <!-- Appropriate processing here -->
 </xsl:template>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读