【问题标题】:XML to HTML XSL Transformation TreeXML 到 HTML XSL 转换树
【发布时间】:2011-11-23 11:30:05
【问题描述】:

我不知道如何在 XSL 中放置递归,以进行简单的 XML 到 HTML (UL+LI) 转换以构建 HTML 树。

我有以下有效的 XML:

<Operations>
<Operation ID="C9EFC137-8FC7-4396-8D77-EB6AD67FC8C9" Name="A" >
    <Operation ID="189C76A8-28FC-4B49-A4DA-A75253D8702C" Name="B" />
    <Operation ID="189C76A8-28FC-4B49-A4DA-A75253D8702C" Name="C">
        <Operation ID="6B458E8F-09BE-4033-B1BF-948DD7B96AAA" Name="D" />
            <Operation ID="189C76A8-28FC-4B49-A4DA-A75253D8702C" Name="E" />
            <Operation ID="189C76A8-28FC-4B49-A4DA-A75253D8702C" Name="F">
                <Operation ID="6B458E8F-09BE-4033-B1BF-948DD7B96AAA" Name="G" />
            </Operation>
        </Operation>
    </Operation>
</Operation>

结构是具有无限深度的多层次。 我需要对其进行改造,使其看起来像这样:

<UL>
<LI>A
    <UL>
        <LI>B</LI>
        <LI>C
            <UL>
                <LI>D
                <UL>
                    <LI>E</LI>
                    <LI>F
                        <UL>
                            <LI>G</LI>
                        </UL>
                    </LI>
                </UL>
            </UL>

        </LI>
    </UL>
</LI>

感谢您的帮助。

谢谢大家。

【问题讨论】:

    标签: html xml xslt


    【解决方案1】:

    这应该可以解决问题(空格有点不同,但结构相同,它显示了原理)

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"     xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
      <xsl:output method="xml" indent="yes"/>
    
      <xsl:template match="Operations">
        <UL>
          <xsl:apply-templates select="Operation" />
        </UL>
      </xsl:template>
    
      <xsl:template match="Operation">
        <LI>
          <xsl:value-of select="@Name" />
          <xsl:if test="Operation">
            <UL>
              <xsl:apply-templates select="Operation" />
            </UL>
          </xsl:if>
        </LI>
      </xsl:template>
    </xsl:stylesheet>
    

    【讨论】:

      【解决方案2】:

      试试

      <xsl:if test="./Operation"><ul> ... recurse here ... </ul></xsl:if>
      

      【讨论】:

      • 嗨。我在 XSL 方面的专业知识很低,我理解你的想法,但我不知道如何递归调用!!!?!?!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 1970-01-01
      • 2015-04-17
      • 2014-09-10
      • 2011-02-27
      相关资源
      最近更新 更多