c# - 有没有办法获得来自 XSLT 转换 'on the fly' 的 asp.net 页面?

标签 c# asp.net xslt

我有一个 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="keys">
    <table border="1">
      <xsl:apply-templates select="key" />
    </table>
  </xsl:template>
  <xsl:template match="key">
    <tr>
      <td>
        <xsl:value-of select="@name" />
      </td>
      <td>
        <pre>
          <xsl:value-of select="." />
        </pre>
      </td>
    </tr>
  </xsl:template>
</xsl:stylesheet>

我目前正在使用它 <asp:Xml />服务器控制。

asp.net 页面周期的动态性质使我认为可能可以生成实际的服务器端标记并获得某种动态代码生成功能。这是可能的/一个好主意吗?

因此 XSLT 将包含:

  ...
        <asp:Label runat="server"><xsl:value-of select="@name" /></asp:Label>
  ...

注意:我提出问题的动机比其他任何事情都更学术。

最佳答案

你绝对可以做到这一点。

您需要在 PreInit PreInit 中执行此操作页面生命周期的阶段。我认为如果你不使用 viewstate,你也许可以在 PreLoad 中做到这一点,但我并不是 100% 相信这一点。
至于这是一个好主意,这取决于您为什么要这样做。

如果您只是为了这样做而这样做,那么这可能是一个坏主意:)那么您只会使您的应用程序变得过于复杂。如果它满足您的某些功能需求,那么它就是一个好主意,也是一个优雅的解决方案。 :)

补充:这是我不久前看到的一个网站,为您提供了一个示例。 XSLT To generate .NET tags

关于c# - 有没有办法获得来自 XSLT 转换 'on the fly' 的 asp.net 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9460887/

相关文章:

c# - Prism的DelegateCommand内存泄漏

c# - MVC4 bundle CSS 失败意外 token ,找到 '@import'

c# - 使用 MVC 核心进行捆绑和缩小

xslt - xsl :apply-templates: match not being respected

xml - 将常规 XML 转换为 Dublin Core XML 时添加命名空间前缀

c# - C#中如何获取JSON中的值?

c# - Orchard 的 IContentManager.BuildDisplay 方法中的 groupId 参数是干什么用的?

c# - 如何使用 SignalR 事件以正确的方式保持连接?

c# - 当我更改 DropDownList 上的选择时,为什么事件未触发?

java - 将 XML 转换为属于同一模式的不同版本且稍有不同的 XML