【发布时间】:2012-02-25 02:42:45
【问题描述】:
我有一个包含 XSL 信息的 asp:xml 标记:
<asp:xml id="XmlMetadataFields" TransformSource="ShowClientTypesPerItemActivity.xsl" ></asp:xml>
在这个 XSL 中,有一些生成 HTML 的代码。这里相关的位:
<xsl:when test="@FieldTypeID = 5">
<input type="checkbox">
<xsl:if test="Visibility = 0">
<xsl:attribute name="hidden">
<xsl:value-of select="@Visibility"/>
</xsl:attribute>
</xsl:if>
<xsl:attribute name="name">
DefValue<xsl:value-of select="@FieldID"/>
</xsl:attribute>
<xsl:attribute name="id">
DefValue<xsl:value-of select="@FieldID" />
</xsl:attribute>
<xsl:if test="Value = true">
<xsl:attribute name="checked">
<xsl:value-of select="Value"/>
</xsl:attribute>
</xsl:if>
</input>
</xsl:when>
一个 Javascript 函数试图在这个 XSL 中调用 HTML:
if(document.all["DefValue639"].checked)
问题是,javascript 在 XSL 中找不到元素。当我右键单击 HTML 页面输出到客户端时,我也找不到输出(在任何地方都找不到 DefValue)。
如何从 Javascript 访问 XSL?我完全误解了什么吗?
【问题讨论】:
-
你想用 xls 实现什么? xsl 的典型用途是将纯 xml 转换为 html。
-
这就是这个 XSL 所做的 - 它输出 HTML 至少这是浏览器可以看到的,尽管我在右键单击“查看源代码”时看不到 HTML 代码。顺便说一句,在 Chrome 中我什至看不到复选框。
-
抱歉,您是在尝试实际访问 XSL 本身,还是通过将 XSL 覆盖到 XML 上生成的 HTML?
-
另外,当你对生成的代码进行查看->源代码时会发生什么。你看到这里的“id”了吗?而且,不要使用
document.all,使用document.getElementById() -
XSLT 转换似乎打算在服务器端执行,而不是在客户端。因此,不必担心如何使用 Javascript 执行 XSLT 转换。真正的问题是这种转换是否在服务器端执行,以及为什么它的结果没有输出。答案只能通过查看相应的 ASP.NET 代码来找到,而您尚未向我们展示这些代码。
标签: javascript asp.net html xslt