Javascript 在XSLT中隐藏和显示子数据

Javascript 在XSLT中隐藏和显示子数据,javascript,html,xslt,Javascript,Html,Xslt,我正在使用XSLT将XML转换为HTML 这是我的XML 在点击约翰后,它会显示所有内容,如 但我只想展示 点击管理后,必须显示子数据 John . Admin: . Date: 01/01/2015 . Age: 28 . Level: 3 Tim 请告诉我哪里做错了。对管理员模板做了以下更改 日期模板如下

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

这是我的XML

在点击约翰后,它会显示所有内容,如

但我只想展示

点击管理后,必须显示子数据

   John
         . Admin:
                 . Date: 01/01/2015
                 . Age: 28
                 . Level: 3
    Tim                     

请告诉我哪里做错了。

对管理员模板做了以下更改


日期模板如下:


  • 它将按预期工作。:)

      <?xml version="1.0" encoding="UTF-8"?>
        <xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:template match="/">
        <html lang="en">
        <head>
        <title>Example</title>
           <script type="text/javascript">
             <![CDATA[
             function toggleDisplay(element) 
             {
                element.style.display = element.style.display   === 'none' ? '' : 'none'; 
              };
             function toggleDisplayAll(elements) 
             { 
                for(var i=0; i<elements.length; i++){
                 toggleDisplay(elements[i]);
             }
           }   
          ]]>
        </script>
        </head>
        <body>
           <h1>Example</h1>
           <xsl:apply-templates/>
         </body>
        </html>
        </xsl:template>        
        <xsl:template match="product/auto">
        <ul>
           <a onclick="toggleDisplayAll(this.parentNode.getElementsByTagName('ul')); return false;" href="#">
               <xsl:value-of select="report/Fname"/>
            </a>
            <xsl:apply-templates select="admin"/>
          </ul>
        </xsl:template>
        <xsl:template match="date">
         <ul style="display:none;">
           <li>
              <xsl:value-of select="concat('Date : ',.)"/>
           </li>
         </ul>
      </xsl:template>
      <xsl:template match="age">
      <ul  style="display:none;">
         <li>
            <xsl:value-of select="concat('Age : ',.)"/>
         </li>
      </ul>
     </xsl:template>
     <xsl:template match="level">
     <ul  style="display:none;">
       <li>
          <xsl:value-of select="concat('Level : ',.)"/>
       </li>
     </ul>
    </xsl:template>
    <xsl:template match="admin">
     <ul  style="display:none;">
       <a onclick="toggleDisplayAll(this.parentNode.getElementsByTagName('ul')); return false;" href="#">
          <xsl:text>Admin: </xsl:text>
        </a>      
        <xsl:apply-templates select='*'/>
        <br/>
       </ul>
     </xsl:template>
    </xsl:stylesheet>
    
       John
       Tim
    
       John
             . Admin:
                     . Date: 01/01/2015
                     . Age: 28
                     . Level: 3
       Tim
    
       John
             . Admin:
       Tim
    
       John
             . Admin:
                     . Date: 01/01/2015
                     . Age: 28
                     . Level: 3
        Tim                     
    
    <xsl:template match="admin">
      <ul style="display:none;">
      <a onclick="toggleDisplayAll(this.parentNode.getElementsByTagName('li')); return false;" href="#">
        <xsl:text>Admin: </xsl:text>
      </a>
      <ul style="display:none;">
        <xsl:apply-templates select='*'/>
      </ul>
    </ul>
    </xsl:template>
    
      <xsl:template match="date">
       <li style="display:none;">
         <xsl:value-of select="concat('Date : ',.)"/>
       </li>
      </xsl:template>