读取XML文件并使用XSLT创建树视图

时间:2017-02-09 05:16:30

标签: xml xslt xml-parsing treeview

我想从XML数据创建树视图结构。任何人都可以帮助我如何使用XSLT实现这一目标。

XML文件:

Path1
  |-Folder1
      |-File1.java
      |-File2.java
      |-Folder2
         |-File3.java
         |-File4.java
  |-Folder3
      |-File5.java

输出:

{{1}}

2 个答案:

答案 0 :(得分:1)

对于浏览器视图列表,您可以使用此代码

<强> XSLT

    <xsl:template match="node">
    <ul>
        <li><xsl:value-of select="@text"/></li>
        <xsl:for-each select="child::node">
            <ul>
                <li>
                    <xsl:value-of select="@text"/>                
                    <xsl:apply-templates select="node()"/>
                </li>
            </ul>
        </xsl:for-each>
    </ul>
</xsl:template>

<强>输出

&#13;
&#13;
<ul>
   <li>Path1</li>
   <ul>
      <li>Folder1
        <ul>
            <li>File1.java</li>
         </ul>
        <ul>
            <li>File2.java</li>
         </ul>
        <ul>
            <li>Folder2</li>
            <ul>
               <li>File3.java</li>
            </ul>
            <ul>
               <li>File4.java</li>
            </ul>
         </ul>
      </li>
   </ul>
   <ul>
      <li>Folder3 </li>
   </ul>
</ul>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这个

    <xsl:template match="/">
    <xsl:for-each select="descendant-or-self::*">
        <xsl:for-each select="ancestor::*">
            <xsl:text>&#160;&#160;&#160;&#160;&#160;</xsl:text>
        </xsl:for-each>
        <xsl:text>|</xsl:text>
    <xsl:value-of select="@text"/>
        <xsl:text>&#xa;</xsl:text>
    </xsl:for-each>
</xsl:template>