XSl:Variable - 检查值是否存在的条件

2024-02-24

使用XSLT 1.0,如何检查变量中的值是否存在?

我最初从 XML 数据将值分配给变量,然后需要检查它是否存在:

<xsl:variable name="DOC_TYPE">
  <xsl:value-of select="name(./RootTag/*[1])"/>
</xsl:variable>
<xsl:if test="string($DOC_TYPE) = ''">
  <xsl:variable name="DOC_TYPE">
    <xsl:value-of select="name(./*[1])"/>
  </xsl:variable>
</xsl:if>  

上面的内容没有按预期工作。我需要的是如果<RootTag>存在于我的数据中,那么该变量应该包含下面的子节点<RootTag>. If <RootTag>不存在,那么 DOC_TYPE 应该是我的 XML 数据中的第一个标签。

感谢您的答复。


您无法在 XSLT 中重新分配变量。变量是不可变的,你不能改变它们的值。曾经。

这意味着你必须决定within变量声明它将具有什么值:

<xsl:variable name="DOC_TYPE">
  <xsl:choose>
    <xsl:when test="RootTag">
      <xsl:value-of select="name(RootTag/*[1])" />
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="name(*[1])" />
    </xsl:otherwise>
  </xsl:choose>
</xsl:variable>

其他一些注意事项:

  • this: './RootTag'是多余的。默认情况下,每个不以斜杠开头的 XPath 都是相对的,所以说'RootTag'足够
  • this: <xsl:value-of select="name(*[1])"/>已经产生一个字符串(名称根据定义是字符串),所以不需要做<xsl:if test="string($DOC_TYPE) = ''">, 一个简单的<xsl:if test="$DOC_TYPE = ''">就够了
  • 要检查节点是否存在,只需通过 XPath 在test="..."表达式 - 任何非空节点集的计算结果为true
  • XSLT 具有严格的范围规则。变量仅在其父元素内有效。你的第二个变量(在<xsl:if>) 会超出范围立即地(意思是就在</xsl:if>).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSl:Variable - 检查值是否存在的条件 的相关文章

随机推荐

  • firestore 规则 get()/exists() 不起作用

    我正在使用 Firestore 规则并想要致电get exist 在一个函数中 然后我在子集合中调用该函数 但会报错 运行模拟时出错 发生未知错误 查看过时的模拟 你能帮忙指出我的错误吗 当我尝试时 允许创建 if get database
  • Swagger API 具有查询字符串

    我想部署一个具有查询字符串的 API 这是 API v1 products q circuit breaker locale en GB pageSize 8 pageNo 1 project GLOBAL 这是我的实施方式 v1 prod
  • Linkedin API - 从 url 获取公司 ID

    有没有办法获得numeric来自 Linkedin 上公司页面 URL 的公司 ID 我将使用该 ID 来查询 Linkedin API 并获取有关该公司的更多信息 我需要从 URL 提供的信息中获取 ID 以使用它来获取与公司页面相关的其
  • 我无法使用 glb/gltf 资源在 Three.js 中显示 aoMap

    我很难让 aoMap 在 Three js 中工作 我有一个 glb 资源 在红色通道上有一个 aoMap 或其他东西 当我将它带入babylon查看器时 我可以很好地看到ao 但它不会显示在 Three js 查看器或我的项目中 我认为这
  • 如何在 SOAPEnvelope 中添加名称空间声明

    在我的肥皂应用程序中 我使用 apache cxf 这是我的代码 它将向服务器提交数据 import org apache cxf Bus import org apache cxf BusFactory import org apache
  • 组内重复序列中缺少间隙

    我们有一个包含以下数据的表 Id ItemId SeqNumber DateTimeTrx 1 100 254 2011 12 01 09 00 00 2 100 1 2011 12 01 09 10 00 3 200 7 2011 12
  • 在 Javascript 中将 CSV 转换为多维数组

    我正在使用 jQuery 的 Ajax 函数从 CSV 文件读取数据 我一直在使用一个名为的 Jquery 插件jQuery CSV http js tables googlecode com svn trunk jquery csv mi
  • Angular Material Table 基于数据源对象数组属性大小的行跨列

    即使现在在 Angular Material 7 2 版本中 我似乎也找不到有关如何在 mat table 上使用 rowspan 并保留组件功能的示例 这是我有多远 短 https stackblitz com edit angular
  • 在KeyPress事件中获取KeyCode值

    如何修复此错误 System Windows Forms KeyPressEventArgs 不包含定义 对于 KeyCode 并且没有扩展方法 KeyCode 接受第一个 System Windows Forms KeyPressEven
  • Spring Boot“不是一个实体”

    我是 Hibernate 和 SpringBoot 的新手 我的项目涉及一个搜索引擎 该引擎由 2 个独立模块 1 个两者共用的基本模块组成 其中IndexSetup类驻留 有一个用于索引的模块 JavaFx 另一个用于通过 Web 浏览器
  • “财产有 ivar 支持”?这在技术上意味着什么?

    所以 我对 Objective C 还很陌生 拿一些 iTunes U corses 做一些练习等等 但是当您使用 synthesize myProperty myIvarPropertyNameToUse 时 iOS 5 将创建一个 iv
  • 替换 javascript 数组中的字符串

    我有一个 JavaScript 数组 该数组包含包含逗号 的字符串 我希望从此数组中删除所有逗号 这可以做到吗 Yes for var i 0 i lt arr length i arr i arr i replace g
  • CSS 模块 @import 未能通过 Jest 测试套件

    我正在使用 Jest 和 Enzyme 来测试我的应用程序 我收到错误 FAIL app containers Navbar NavbarContainer test js Test suite failed to run app comp
  • 在 Perl 中读取文件时如何跳过行?

    我怎样才能做到这一点 open FILE somefile foreach
  • 为每根树枝设置翻译域

    我有一些树枝包括需要翻译的文本 目前我把这句话放在每根树枝上 trans default domain AcmeTopBundle 不过 这有点麻烦 有没有一种好方法可以为一个地方的每根树枝设置默认域 可以在原来的基础上写一个自定义的节点访
  • 没有自动换行的多行 UILabel?

    是否有可能有一个UILabel由多个组成 n 分隔行的行宽度 gt 标签宽度被截断而不是换行 假设我有一些如下所示的文本 这是一个非常长的第一行文本 太长而无法水平放置 短线 又一条短线 我希望这个出现在我的UILabel像这样 1 Thi
  • 无法导出 const 箭头函数

    ES6 新手 我试图制作一个像这样的 React 简单功能组件 Todo jsx export default const Todo todos onTodoClick gt ul todos map todo i gt li gt onT
  • 将 ArrayList 转换为 JSON - Android

    我有一个数组列表和一个单独的字符串 我想将它们转换为 JSON 格式并期望它低于 json 格式 预期格式 last sync date 2014 06 30 04 47 45 recordset contact group guid y3
  • 在 Rstudio 中使用 gtsummary 计算缺失值的百分比

    我的问题有点类似于这个one https stackoverflow com questions 63640473 calculate percent from total observations in r gtsummarytbl su
  • XSl:Variable - 检查值是否存在的条件

    使用XSLT 1 0 如何检查变量中的值是否存在 我最初从 XML 数据将值分配给变量 然后需要检查它是否存在