我正在尝试为树结构化XML编写XSLT
我的XML就像打击一样:
<?xml version="1.0" encoding="UTF-8"?> <product> <auto> <admin> <date>2015</date> <subject> <id>1</id> </subject> </admin> <report> <Fname>John</Fname> </report> </auto> <auto> <admin> <date>02/02/2015</date> <subject> <id>1</id> </subject> </admin> <report> <Fname>Jack</Fname> </report> </auto> </product>
运行XSLT是:
<?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"> <li style="display:none;"> <xsl:value-of select="concat('Date : ',.)"/> </li> </xsl:template> <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="id"> <li style="display:none;"> <xsl:value-of select="concat('ID : ',.)"/> </li> </xsl:template> <xsl:template match="subject"> <li style="display:none;"> <a onclick="toggleDisplayAll(this.parentNode.getElementsByTagName('li')); return false;" href="#"> <xsl:text>Subject: </xsl:text> </a> <ul style="display:none;"> <xsl:apply-templates select='*'/> </ul> </li> </xsl:template> </xsl:stylesheet>
运行此代码后,数据将显示如下
John Jack
点击John
John Admin Jack
现在点击Admin
John Admin Date: 2015 Subject: ID: 1 Jack
这里我想在“主题”节点下显示“ID”,在其“主体”节点的“点击”上显示,但是在点击“管理”节点时显示它。
如何控制此操作。如何控制节点特定的操作
我可能会反复发布这个问题。请帮我解决这个问题。
这是html,我使用Jquery
实现此功能$('.expand').click(function() { $('ul', $(this).parent()).eq(0).toggle(); }); ul li ul { display: none; } <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li> <a class="expand">Root</a> <ul> <li> <a class="expand">Child</a> <ul> <li> <a class="expand">Super Child</a> </li> </ul> </li> </ul> </li> </ul>
请帮助我..如何实现相同的i xslt