我正在编写一个 XSL 文件,它将一段 XML 转换为 HTML,它包含一段 javascript 代码,我用它来通过单击按钮来切换表格元素 HTML 的可见性。我现在不需要使用样式。
这是我的 XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type='text/xsl' href='myXSL.xsl'?>
<LISTS>
<SCR>repository</SCR>
<Dependency><ArtifactId>maven</ArtifactId>
<GroupId>NO</GroupId>
<!--two tags details appear only if the 'GroupId' node value is 'NO'-->
<detail1>
Here is a text detail 1
</detail1>
<detail2>
Here is a text detail 2
</detail2>
</Dependency>
<Dependency>
<ArtifactId>eclipse</ArtifactId>
<GroupId>YES</GroupId></Dependency>
</LISTS>
我的 XSL 是:
<xsl:template match = "/">
<html>
<head>
<script type="text/javascript">
function toggle(p1,p2)
{
if(document.all){document.getElementById(p1).style.display =
document.getElementById(p1).style.display == "block" ? "none" : "block";}
else{document.getElementById(p1).style.display =
document.getElementById(p1).style.display == "table" ? "none" : "table";}
document.getElementById(p2).value =
document.getElementById(p2).value == "[-] Detruire" ? "[+] Construire" : "[-] Detruire";
}
</script>
</head>
<BODY>
<table>
<xsl:for-each select="LISTS/Dependency">
<xsl:call-template name="myTemplate"/>
</xsl:for-each>
</table>
</BODY>
</html>
</xsl:template>
<!-- called template-->
<xsl:template name="myTemplate">
<tr>
<xsl:choose>
<xsl:when test="GroupId='YES'">
<tr>
<td><xsl:value-of select="ArtifactId"/></td>
<td>OK</td>
</tr>
</xsl:when>
<xsl:when test="GroupId='NO'">
<tr>
<td><xsl:value-of select="ArtifactId"/></td>
<td align="right">KO<input id="mylnk" type="button"
value="[+] Construire" onclick="toggle('tb','mylnk');"/></td>
</tr>
<tr>
<td>
<table width="100%" border="1" cellpadding="4"
cellspacing="0" id="tb" name="tb">
<tr>
<td><xsl:value-of select="detail1"/></td>
<td><xsl:value-of select="detail2"/></td>
</tr>
</table>
</td>
</tr>
</xsl:when>
</xsl:choose>
</tr>
</xsl:template>
</xsl:stylesheet>
我使用 XSL 得到的结果如下:
如何更改我的 XSL 以默认获取这个?
![enter image description here][2]
扩展时,得到这个?
![enter image description here][3]