Xml 用于多子结构的XSLT

Xml 用于多子结构的XSLT,xml,xslt,Xml,Xslt,我正在使用XSLT将XML转换为HTML 这是我的运行代码 <?xml version="1.0" encoding="UTF-8"?> <product> <auto> <admin> <date>2015</date> <age>28</age> <level

我正在使用XSLT将XML转换为HTML

这是我的运行代码

     <?xml version="1.0" encoding="UTF-8"?>
     <product>
       <auto>
           <admin>
             <date>2015</date>
             <age>28</age>
             <level>3</level>
             <subject>
                <id>1</id>        
             </subject>
           </admin>
           <report>
             <Fname>John</Fname>
             <Lname>AA</Lname>
             <subject>
                <id>1</id>        
             </subject>
           </report>
        </auto>
        <auto>
          <admin>
             <date>02/02/2015</date>
             <age>29</age>
             <level>2</level>
             <subject>
                 <id>1</id>       
             </subject>
          </admin>
          <report>
             <Fname>Jack</Fname>
             <Lname>BB</Lname>
          </report>
        </auto>
     </product>
点击约翰之后

点击管理员

但主题是一个链接,我想在点击它时将id显示为一个子元素,如下所示


添加日期、年龄、级别、id、州和国家的模板。 然后将模板应用于admin和report的子级,而不是值

“添加模板”是指(未测试,可能有“输入错误”):


  • 为每个元素添加类似的模板(实际上,您可以使用一个通用模板,可以使用元素名称,但在我的回答中尽量保持简单)

    然后是管理模板:

    <xsl:template match="admin">
     <ul style="display:none;">
      <li>
        <xsl:text>Admin: </xsl:text>
        <xsl:apply-templates select='*'/>
        <br/>
      </li>
    </ul>
     </xsl:template>
    
    
    
    • 管理员:

    对报告模板也做同样的操作。

    感谢您回答Eric,我确实尝试了按照您的建议添加,但它提供了相同的数据。请看一下所做的更改,并告诉我哪里做错了。这是我在XSLT中的第一次任务,因此需要您的帮助。我想问题在于输出的HTML。你想要什么作为html输出?是的,我想要一个html输出。请帮助我请参考我最新的xml和xslt。。我能够获得一个更多的层,但它是失败的主题标签。
         John
         Jack
    
         John
             . Admin:             
         Jack
    
         John
             . Admin:
                 . Date: 2015
                 . Age: 28
                 . Level: 3
                 . Subject:             
         Jack
    
         John
             . Admin:
                 . Date: 2015
                 . Age: 28
                 . Level: 3
                 . Subject:
                       .Id:  1             
         Jack
    
    <xsl:template match="date">
         <li><xsl:value-of select="concat('Date : ',.)"/></li>
    </xsl:template>
    
    <xsl:template match="admin">
     <ul style="display:none;">
      <li>
        <xsl:text>Admin: </xsl:text>
        <xsl:apply-templates select='*'/>
        <br/>
      </li>
    </ul>
     </xsl:template>