了解“apply-templates”匹配

2024-04-12

我的想法正确吗?apply-templates声明应匹配all哪些模板可用于选择?

例如,给定以下 xml 片段:

<doc>
  <foo bar="1" baz="2">boz</foo>
</doc>

以及以下样式表:

<xsl:template match="/">
  <xsl:apply-templates select="foo" mode="xyz" />
</xsl:template>

<xsl:template mode="xyz" match="foo[bar='1']">
  abc
</xsl:template>

<xsl:template mode="xyz" match="foo[baz='2']">
  def
</xsl:template>

我希望输出是:

abc
def

它是否正确?


不,您不会获得两种输出,因为只会选择一个模板。 看这一页 http://www.w3.org/TR/xslt#conflict如果有多个可能的模板,则冲突解决规则。

修复样式表后(与 Rubens 的做法类似,但模式相同),这通常会导致应用 xslt 文件中的最后一个模板,因此输出将是def。这是因为这两个模板具有相同的优先级,如果您的 xslt 处理器没有因错误而停止,则标准要求它应用最后一个:

如果这留下了多个匹配的模板规则,则这是一个错误。 XSLT 处理器可能会发出错误信号;如果它没有发出错误信号,则必须通过从剩余的匹配模板规则中选择样式表中最后出现的规则来恢复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

了解“apply-templates”匹配 的相关文章

随机推荐

  • Hibernate:如何按id升序选择最后N行? (在单个查询中)

    休眠版本 5 2 我正在尝试使用子查询来做 并使用setMaxResults int session createQuery FROM SELECT FROM tickets ORDER BY id DESC limit 3 sub ORD
  • html5 canvas 游戏 - 如何添加视网膜支持

    我正在为 iPhone 创建 HTML5 画布游戏 我想支持视网膜和非视网膜显示器 我的问题是 如何同时支持视网膜和非视网膜显示器 即 执行此操作的一般实现是什么 我是否使用 iPhone 尺寸编写游戏 然后添加视网膜支持 或者我是否创建游
  • Dynamodb - 更新对象数组中 JSON 对象的值

    以下是存储在 DynamoDb 中的示例项目对象 记录 我使用 NodeJS 和AWS DynamoDB DocumentClient访问数据库 我正在构建一个 PUT 函数来更新数组中 JSON 对象的状态 该函数将有权访问该项目的uui
  • 在 Apache 中使用 mod_rewrite 处理中文字符

    我无法找到有关使用中文字符的 Apache mod rewriting 的信息 我能找到的所有信息都与数字有关 我想重写 character php character 宠 其中字符是搜索结果 因此会有所不同 character 宠 这是我
  • 共享主机帐户中的 php.ini 配置更改

    我尝试使用 htaccess ini set 覆盖默认的 php ini 配置 但在执行脚本时配置没有得到反映 这里 PHP 安装为 fastcgi 并位于共享托管帐户中 有什么方法可以更改 php ini 设置 或者我需要将我的帐户升级到
  • Rails 2.3:如何将此 SQL 语句转换为named_scope

    弄清楚如何从这个 SQL 查询创建一个named scope 有点困难 select from foo where id NOT IN select foo id from bar AND foo category ORDER BY RAN
  • mysql如何连接两个表?

    我有两张桌子 services id client service and clients id name email 如何列出餐桌服务并汇总顾客餐桌上的顾客姓名 表中的客户服务字段有客户表中客户的id 我很感谢你现在的帮助 SELECT
  • 是否可以从maven编译grunt项目?

    我正在尝试从 Maven 中执行 grunt 任务 而不需要安装 Node js 或任何东西 这是因为我不希望 Jenkins 打包我的工件 并且我无法在那台机器上安装 Node js 我知道使用 npm 和一些命令就可以让它工作很容易 但
  • 如何使用 Java 将 JMS 消息排入 Oracle AQ 中

    我有一个队列类型为 SYS AQ JMS TEXT MESSAGE 的 Oracle AQ 我想做的是将文本从 java 应用程序插入到提到的队列中 等效的 SQL 查询是 declare r enqueue options DBMS AQ
  • Cytoscape.js 的性能和布局

    我正在测试 Cytoscape js 的渲染性能 我的图表包含大约 5000 个节点和 5000 个边 没有 x y 位置 使用 Cytoscape js 的自动布局 但欧拉布局扩展在渲染完所有节点和边后需要花费超过15秒的时间 在下次操作
  • Google Plus 登录集成错误 iOS

    您好 我正在尝试在我的 iOS 应用程序上集成 google 登录 我已按照此说明进行操作link https developers google com mobile ios getting started 这些示例工作正常 但是当我尝试
  • 谷歌的 oauth2 范围有深入研究吗?

    我正在寻找有关 google 使用 oauth 范围的一些深入的详细信息 我的云端硬盘应用程序is工作 所以我可以简单地使用范围 但是我有以下详细问题 问题 我指定了两次范围 一旦进入我的应用程序 然后也进入 API 安慰 这两个范围分别有
  • MS Graph API 中的分页

    图形API分页 https graph microsoft io en us docs concepts paging解释响应将包含一个字段 odata nextLink其中将包含一个skiptoken指向下一页内容 当我测试 API 时
  • Instagram API。 “无法到达回调 URL”

    好的 伙计们 这是设置 我正在开发一个节日网站 需要使用 Instragram API 客户希望自动从 Instagram 加载使用特定主题标签的图片 没问题 Instagram API 支持此功能以及更多功能 但是 当我尝试进行订阅 通过
  • 我可以编写一个断言多个不变量的类型保护吗?

    我可以编写一个类型保护来断言一个或多个子对象一个论点 在伪代码中 它可能看起来像这样 class C a number b string function assertInitialized this a is number and thi
  • 如何验证 has_many :through 连接模型的唯一性?

    我有通过投票模型加入的用户和问题 用户可以对问题进行投票 他们可以投票赞成或反对 这记录在投票模型中 首先 我希望能够阻止用户向一个方向投多次票 其次 我想让用户投反对票 因此 如果他们投了赞成票 他们仍然应该能够投反对票 这将取代赞成票
  • 使用 RestructedText 和 Sphinx 包含预格式化文件

    我正在尝试使这个片段发挥作用 Version History These are the versions over time include CHANGES txt 也就是说 使用 include 指令将文件作为块引用包含在内 一旦进入块
  • OCR 解析获取复选框或单选按钮值

    I need to parse OCR image file and get all texts and checkbox values How to get Checkbox or Radio Button value from OCR
  • 如何获取Titan DB版本1.0.0中顶点或边元素的属性

    在旧版本中泰坦数据库 0 5 2 版 the 泰坦顶点 and 泰坦之刃实施泰坦元素有方法的接口getProperties String key 我用来检索元素属性值 这个方法在新版本的Titan中被删除了 我使用的是1 0 0版本 我找到
  • 了解“apply-templates”匹配

    我的想法正确吗 apply templates声明应匹配all哪些模板可用于选择 例如 给定以下 xml 片段