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