基于项目编号的XSLT树结构

我的XSLT-Stylesheet有问题。 我有一个包含多个程序集的XML文档。 每个组件都有一个唯一的项目编号。 程序集可以包含其他程序集作为位置,但XML文档具有如下平面结构:

           1,0000            1,0000            1,0000                187994   1,0000            1,0000           

识别子assembly的唯一方法是项目编号。 我想使用jsTree jquery插件将XML显示为树结构。 因此我需要一个像这样的HTML输出:

 
  • 0001 | Main assembly
    • 1111 | Sub assembly 1
    • 2222 | Sub assembly 2
    • 3333 | Sub assembly 3

到目前为止,我已尝试使用与我的问题类似的许多问题的答案,但没有任何效果。 谁能帮我? 先感谢您!

问候B0R0H

您需要使用一个键,以便每个程序集可以(递归地)将模板应用于其组件:

     
  • |
  • 基本答案是您需要以正常方式使用xsl:apply-templates通过数据进行自上而下的递归下降,但有一个例外:您需要的不是处理XML树中节点的物理子节点处理其逻辑孩子。 所以不要写作

      

    像往常一样,你写

      

    然后下一个阶段是你可以使用密钥来优化它,如michael.hor257k所描述的(如果你使用像Saxon-EE这样自动进行优化的处理器,则不需要)。

    谢谢你的帮助! :)我刚刚找到问题的解决方案。 我已将它发布给其他有(也许)类似问题的人。 这个对我有用:

                          ETK           

    ETK

    • |
    • |