当前位置:  开发笔记 > 编程语言 > 正文

"动态"XSLT提供webbrowser控件?

如何解决《"动态"XSLT提供webbrowser控件?》经验,为你挑选了1个好方法。

我经常在应用程序中使用HTML输出,到目前为止我已经使用了一些简单的例程来构建HTML字符串.我现在想尝试一些不同的东西:

我想将数据序列化为XML,并提供一些XSLT模板来生成webbrowser控件的HTML.我让它静态工作(通过编写XSL慢慢挖掘),但我需要动态更改XSL文档的一些属性:过滤器,路径等,以跟随当前的UI选择.

数据足够小,以至于更改时的XML序列化不应成为问题.我想使用"静态"外部XSL文件(以便用户可以在一定程度上自定义输出),但需要调整.

我的问题:

这个想法在技术上是否合理?
我可以使用XML和XSL文档动态提供Web浏览器控件吗?我可以动态修改XSL中的选定路径元素和属性(即不生成新文件)吗?如何在Web浏览器控件中执行此操作?(一些让我入门的指针会很好..)

[编辑]感谢大家,它的工作:D [/ edit]



1> Robert Rossn..:

通常的方法是在运行时为变换提供参数并编写变换,以便其行为由参数控制.

通常当我这样做时,我只传入一个参数 - 一个XML文档 - 并让模板查询它以确定它们应该做什么.所以你会看到像这样的东西:


   
   
      
         
      
         
      
         

等等.

使用XML/XSLT动态提供WebBrowser控件非常简单:

using (XmlWriter xw = XmlWriter.Create(new StringWriter(output)))
{
    StringBuilder output = new StringBuilder();
    XsltArgumentList args = new XsltArgumentList();
    args.AddParam("config", myConfigXml);
    myXslt.Transform(myXml, args, xw);
    xw.Flush();
    myWebBrowser.DocumentText = output.ToString();
}

如果用户正在更新的UI位于WebBrowser本身(即HTML页面包含HTML UI控件),则应使用动态HTML技术,就像在普通浏览器中显示页面时一样.那是一包完整不同的香蕉.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有