我是XSLT的新手。我有一个经典的ASP页面,通过自定义COM对象获取xml文件。这是文件结构:
第一行包含与年份相关的值(参数类型=" 1"),包含12个包含月度数据的行(参数类型=" 2"),依此类推x年。 我需要创建的输出是一个带有文本框元素的HTML表,我可以显示/隐藏月份记录,并根据用户输入和xml数据进行一些客户端验证。 "年"行(参数类型=" 1")始终可见,并包含" +"在第一个表格单元格中签名以显示/隐藏月份行(参数类型=" 2")。我已经创建了显示/隐藏和验证Javascript函数。
我需要有关创建/格式化XSLT文件的帮助。最后,我还需要将月份数转换为描述性月份名称 感谢名单
<row year="2016" type="1" euro="100000000.00"/>
<row year="2016" type="2" month="1"/>
<row year="2016" type="2" month="2"/>
<row year="2016" type="2" month="3"/>
<row year="2016" type="2" month="4"/>
<row year="2016" type="2" month="5"/>
<row year="2016" type="2" month="6"/>
<row year="2016" type="2" month="7" euro="1000234000.00"/>
<row year="2016" type="2" month="8"/>
<row year="2016" type="2" month="9"/>
<row year="2016" type="2" month="10"/>
<row year="2016" type="2" month="11"/>
<row year="2016" type="2" month="12"/>
<row year="2017" type="1" euro="199996993.00"/>
<row year="2017" type="2" month="1"/>
<row year="2017" type="2" month="2"/>
<row year="2017" type="2" month="3"/>
<row year="2017" type="2" month="4"/>
<row year="2017" type="2" month="5"/>
<row year="2017" type="2" month="6"/>
<row year="2017" type="2" month="7" euro="125000000.00"/>
<row year="2017" type="2" month="8"/>
<row year="2017" type="2" month="9"/>
<row year="2017" type="2" month="10"/>
<row year="2017" type="2" month="11"/>
<row year="2017" type="2" month="12"/>
以下是我使用过的代码,不确定它是否是最好的方法,但它似乎到目前为止工作
<xsl:for-each select="row">
<xsl:choose>
<xsl:when test="@type='1'>
<tr>
<td align="center">
<xsl:element name="a">
<xsl:attribute name="href">javascript:ToggleYear(<xsl:value-of select="@year"/>)</xsl:attribute>
<xsl:attribute name="id">a_<xsl:value-of select="@year"/></xsl:attribute>
<xsl:text>+</xsl:text>
</xsl:element>
</td>
<td>
...
</td>
</tr>
</xsl:when>
</xsl:choose>
<xsl:if test="@type = 2">
<xsl:element name="tr">
<xsl:attribute name="style">display:none</xsl:attribute>
<xsl:attribute name="id"><xsl:value-of select="@year"/>_H_<xsl:value-of select="@month"/></xsl:attribute>
<td><xsl:text disable-output-escaping="yes">&</xsl:text>nbsp;</td>
<td>
...
</td>
</xsl:element>
</xsl:if>
</xsl:for-each>
答案 0 :(得分:0)
更新:上面的xslt正在运行,这里是我创建的html输出。我现在就这样离开。
P.S。 现在我必须创建一些客户端JS验证来比较输出数据和用户输入,并通过JS发送回数据 - &gt; ASP - &gt; XML - &gt; COM - &gt; SQL Server,但我似乎已经开始工作了:))