xsl:for-each 有什么不好的地方?

2023-11-25

我一次又一次听到有关如何避免使用 XSLT for-each 的说法。应该消除的是你内心的命令式编程恶魔。

这有什么不好呢?

此最佳实践是否重要取决于sizeXML 的数量(即 100 个节点与 10,000 个节点)?


之间的本质区别<xsl:apply-templates> and <xsl:-for-each>没有人指出:

  1. <xsl:apply-templates>确实不仅仅是一个更好、更优雅的等价物<xsl:for-each>:

xsl:apply-templatesxsl:for-each, 甚至 仅仅是因为我们不知道什么代码将应用在节点上 选择——在一般情况下,此代码将有所不同 节点列表的不同节点.

Also, 将应用的代码 可以在编写 xsl:apply 模板之后编写,并通过 不认识原作者的人.


_2.另一方面,using <xsl:for-each>如果一个人确切地知道如何<xsl:for-each>已处理.

问题在于,许多具有命令式编程经验的 XSLT 新手都采用<xsl:for-each>作为他们最喜欢的 PL 中“循环”的替代品,并认为它可以让他们执行不可能的任务——例如增加计数器或对已定义的任何其他修改<xsl:variable>.

一个不可缺少的用途<xsl:for-each>就是改变当前的文档——这是经常需要的为了能够在不同于当前源 XML 文档的文档上使用 key() 函数,例如有效地访问驻留在其自己的 xml 文档中的查找表。

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

xsl:for-each 有什么不好的地方? 的相关文章

随机推荐

  • 将 Python argparse.Namespace() 视为字典的正确方法是什么?

    如果我想使用的结果argparse ArgumentParser 这是一个Namespace对象 具有需要字典或类似映射的对象的方法 请参阅集合 映射 正确的做法是什么 C gt python Python 2 7 3 default Ap
  • Typescript 索引签名和方法

    为什么下面的代码给出ts 2411 error class Greeter key string string number greeting string constructor message string this greeting
  • 如何删除ListBox中的多个选定项?

    我的 Windows 窗体包含两个列表框 Listbox1 包含一些项目 listbox2 为空 当我按下表单上的按钮时 应将 listbox1 中的多个选定项目从 Listbox1 中删除并复制到 Listbox2 中 我尝试在 list
  • JavaScript WeakMap 不断引用经过 gc 处理的对象

    我正在经历 JavaScript 弱映射 在 google chrome 开发者控制台中尝试此代码后 使用 js flags expose gc 运行 我不明白为什么弱映射继续引用 a b 如果 a 是GC 编辑 var a listene
  • Java中Arraylist转Json的方法

    我有一个数组列表 数组列表包含一堆域对象 如下图所示 Domain domainId 19 name a dnsName a com type 0 flags 0 Domain domainId 20 name b dnsName b co
  • 如何在客户端-服务器 PlayN 游戏中处理 RPC?

    我想使用 PlayN 创建客户端 服务器纸牌游戏 例如心 虽然我主要关注 HTML5 输出 但我希望与输出平台无关 以防我将来决定制作 Android 客户端 我应该如何处理RPC机制 这些是我想到的选项 通过 get post 方法将 J
  • Dynamodb:使用两个以上属性的查询

    在 Dynamodb 中 您需要在索引中指定可用于进行查询的属性 如何使用两个以上的属性进行查询 使用 boto 的示例 Table create users schema HashKey id defaults to STRING dat
  • 在 MKMapView 上移动/更新 MKOverlay

    有没有办法更新 即移动 aMKOverlay已经添加到MKMapView 删除旧的并添加新的非常糟糕 慢 即我想当覆盖物在屏幕上移动时触发调用此函数的后台函数 MKOverlayView mapView MKMapView mapView
  • 从远程 git 存储库获取单个文件

    有没有一种方法可以在 Java 中以编程方式从远程 git 存储库下载单个文件 我更喜欢使用尽可能少的带宽的解决方案 最好只下载单个文件 我不需要浏览存储库 我已经有了文件的路径 我更喜欢不依赖于其他应用程序的解决方案 例如 在计算机上安装
  • 如何启动和应用程序选择器

    该应用程序的任务是隐式激活一个单独的应用程序来查看 URL http www google com 因此 应用程序选择器应该出现并让我在至少两个浏览器之间进行选择 默认浏览器将向我显示 www google com 网站 另一个简单的 浏览
  • 需要 C# 中的 BouncyCastle PGP 文件加密示例

    我正在尝试使用我的私钥 ascii 格式 和任何其他公钥 也是 ascii 格式 加密文件 BouncyCastle 库看起来是正确的使用方式 但我找不到 C 的文档 谁能帮我举个例子 谢谢 以下是 BouncyCastle 示例中的一些代
  • 创建不包含外部依赖项的 JAR 文件

    是否可以创建需要外部依赖项的 JAR 文件 而不在 JAR 文件中包含这些依赖项 我的 google fu 未能给我答案 我发现的所有内容都显示了如何将它们包含在 JAR 文件中 但没有显示如何将它们放入清单文件中来表示 我还没有得到它们
  • 如何清除内存以防止VBA中的“内存不足错误”?

    我正在一个大型 Excel 电子表格上运行 VBA 代码 如何清除过程 调用之间的内存以防止发生 内存不足 问题 帮助释放内存的最佳方法是使大对象无效 Sub Whatever Dim someLargeObject as SomeObje
  • C++ 内联类方法导致未定义的引用

    当我尝试内联某个类的方法时 出现编译器错误 当我去掉 inline 关键字时它就起作用了 这是一个简化的示例 主要 cpp include my class h int main MyClass c c TestMethod return
  • 单击时搜索栏的拇指

    我想在搜索栏拇指上注册一个可点击事件 以便在用户单击它时触发事件 是否可以 结合 zwebie 和 Nermeens 的答案得出正确的解决方案 seekbar setOnSeekBarChangeListener new SeekBar O
  • 更好的蜜罐实施(形成反垃圾邮件)

    How do we get rid of these spambots on our site 每个网站都会成为受害者spambots在某一点 您的处理方式会影响您的客户 并且大多数解决方案可能会阻止某些人填写您的表格 这就是蜜罐技术的用武
  • cdk virtualscroll 与 mat-grid-list

    是否有与网格列表一起使用的虚拟滚动实现 我认为默认实现不起作用 因为每一行周围都应该有一个元素 我使用网格列表来显示个人资料图片 并且需要无限滚动或最好是虚拟滚动来加载新图片 因此 由于 cdk virtualscroll 不支持多列 我最
  • PHP/MySQL 数据库查询到底是如何工作的?

    我经常使用MySQL 但我总是想知道它到底是如何工作的 当我得到肯定的结果时 数据到底存储在哪里 例如我这样写 sql SELECT FROM TABLE result mysql query sql while row mysql fet
  • C 在 Windows 上获取系统时间到微秒精度? [复制]

    这个问题在这里已经有答案了 可能的重复 在 C 中以微秒分辨率测量时间 Hi 有没有一种简单的方法可以获取 Windows 计算机上的系统时间 精确到微秒 查看 GetSystemTimeAsFileTime 它的精度为 0 1 微秒或 1
  • xsl:for-each 有什么不好的地方?

    我一次又一次听到有关如何避免使用 XSLT for each 的说法 应该消除的是你内心的命令式编程恶魔 这有什么不好呢 此最佳实践是否重要取决于sizeXML 的数量 即 100 个节点与 10 000 个节点 之间的本质区别