C#:XML 转换

Posted

技术标签:

【中文标题】C#:XML 转换【英文标题】:C#: XML transformation 【发布时间】:2011-12-31 08:21:54 【问题描述】:

我有一个结构已知的 XML 文件,但我无法更改其中的任何内容。 任务是在浏览器(C# WebBrowser 控件)中显示来自该 XML 的数据,也许是使用一些样式表的 html

问题是我如何在现有 XML 上应用转换而不插入类似的东西

 <?xml-stylesheet type="text/xsl" href="my-style.xsl"?>

我正在考虑在某处复制一个 XML,然后添加这个 xml 样式表,然后在浏览器中显示它。但也许我可以以某种方式动态应用样式表?

也许可以在内存中保存 XML、应用样式表并将内存中的 xml 加载到 WebBrowser 控件?

我只是想知道这样做的最佳方法是什么......

【问题讨论】:

【参考方案1】:

查看the XPath Visualizer 用于生成 HTML 格式的 XML 文档的 XSLT 转换

另外,您也可以查看 IE 的 defaultss.xsl 样式表,但请注意,它使用 XSLT 的非标准方言——严格来说根本不是 XSLT。

【讨论】:

【参考方案2】:

当然可以!看看XslCompiledTransform 类。因此,您可以在内存中转换您的 XML,然后加载转换后的文档。

【讨论】:

你能给我一个例子,如何将转换后的 xml 输出到浏览器中吗?使用 Stream 还是 XmlWriter? 嗯.. 看起来我的 WebBrowser 没有显示数据... 真的很奇怪!当我使用 MessageBox.Show() 时,我可以看到页面,但是在消息关闭后,它又不可见了:(

以上是关于C#:XML 转换的主要内容,如果未能解决你的问题,请参考以下文章

C#实体类与XML相互转换

将 XML 转换为动态 C# 对象

如何在 C# 中将嵌套列表转换为 XML

将 XML 转换为 C# 类的工具 [重复]

C# 实现DataTableDataSet与XML互相转换

将 XML 数据转换为 C# 类