我有很多xslt
文件,它们有时包含某些相同对象的完全重复信息。是否有可能将它带到另一个xslt
并将其包含在现有的内部?如何做到这一点?带有重复信息的xslt集
1
A
回答
2
<xsl:include>
有助于模块化XSLT代码,但本身并不删除重复的代码。
一个XSLT的最根本的特征 - templates - 如果使用得当,可以显著消除任何代码重复:
模板的匹配模式不同类型的节点匹配其上模板将被应用 - 当在处理相同匹配模式的不同实例的许多地方使用相同的代码时,这消除了重复。虽然可以使用类似于函数/子例程的方式调用模板,但使用
<xsl:apply-templates>
- 选择匹配的模板更加强大和灵活 - 后者类似于在OOP中调用基本类型的虚拟函数 - 我们不知道执行时将存在哪些派生对象,以及相应虚拟函数中可能有多少特化(覆盖)中的哪些将被选中执行。上述技术与相结合,将参数传递给模板有助于消除只有一些值/节点不同的重复代码。
使用模板可以模拟高阶函数(HOF)并将模板/函数作为参数传递给另一个模板/函数,并返回模板函数作为应用模板/函数的结果。可以使用功能组合和部分应用程序动态创建新功能。 FXSL库为XSLT 1.0和XSLT 2.0实现HOF。
在即将到来的XPath 3.0/XSLT 3.0中,HOF是该语言的标准功能。函数可以作为参数传递并作为结果返回给其他函数。匿名(内联)函数可以在XPath 3.0表达式中动态创建。新的标准XPath 3.0函数
fold-left()
,fold-right()
和map()
是通常在任何函数式编程语言中使用的最基本的函数。它们的使用可以显着减少代码大小和代码重复。
1
你应该利用<xsl:include>
看一看http://www.xml.com/pub/a/2000/11/01/xslt/index.html或 Is there a kind of include once in XSLT?
最好的问候, 彼得
相关问题
- 1. XSLT信息采集
- 2. 获取带有附加信息的重复项
- 3. 如何删除具有最少信息集的重复行?
- 4. UIScrollView重复信息
- 5. 带有重复/重复元素的Python“集合”
- 6. 带有多个集合的XSLT分组
- 7. 插入带复选框的信息
- 8. 关于XSLT的信息
- 9. 提取的信息与XSLT
- 10. XSL重复信息问题
- 11. JSON保存重复信息
- 12. 用nosql重复信息?
- 13. 带有标记集群及其信息窗口的Google地图
- 14. 如何生成带有DTD引用的linq到xml信息集?
- 15. 带重叠元素的XSLT?
- 16. 从大型数据集(> 100Mio行)中删除重复信息
- 17. 了重复的信息,而从历史
- 18. 算法来搜索重复的信息?
- 19. 摆脱PHP中的重复信息
- 20. python ood - 类之间的重复信息
- 21. 返回重复信息的SQL查询
- 22. 更改城市时重复的信息
- 23. 带有错误信息的XAMPP
- 24. 带有文件信息的CaptureStackBackTrace
- 25. 带有附加信息的SQL查询
- 26. 带有列表提供信息的JFrame
- 27. 带有Symfony框架的PHP MP3信息
- 28. 带有额外信息的Django表格
- 29. 返回带有信息的ID MySQL/PHP
- 30. 带有SMTP详细信息的PHPMailer
很好的解释;我个人使用仅用于所需变量的长列表; +1 –
Peter
@Peter,是的,XSLT模板和模式匹配是一个非常强大的功能 - 通常在其他语言中缺少。 –