替换过时的System.Xml.XmlDataDocument?

19

我在一个WebForms应用程序中使用了System.Web.UI.WebControls.Xml控件(Xml1),并将其从.NET 2.0升级到.NET 4.0。

代码后台页面出现了两个警告,我想对此采取一些措施。

... 
Dim ds As DataSet = app.GetObjects
Dim xmlDoc As New System.Xml.XmlDataDocument(ds)
Xml1.Document = xmlDoc
Xml1.TransformSource = "~/xslt/admin_objectslist.xslt"
...

从第二行开始,我收到了警告信息:

'System.Xml.XmlDataDocument' 已过时:'XmlDataDocument 类将在未来版本中被删除。'

而从第三行开始,我收到了警告信息:

'Public Property Document As System.Xml.XmlDocument' 已过时:'推荐的替代方案是 XPathNavigator 属性。创建一个 System.Xml.XPath.XPathDocument 并调用 CreateNavigator() 创建一个 XPathNavigator。

那么在 .NET 4.0 中,有什么推荐的替代方案呢?

2个回答

29

我在3.5版本中也遇到了这个问题。下面是我想出的解决方法:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(ds.GetXml());
xml1.XPathNavigator = xmlDoc.CreateNavigator();                
xml1.TransformSource = @"~/XSLT/LogEntryTransform.xslt";

希望这有所帮助。


@Sung 不是同一个人,所以他不能。 - andrewb
正是我所需要的。非常感谢。 - ashilon
xml1是aspx中的<asp:xml id="xml1" runat="server" ...>控件。Code-behind是一个System.Web.UI.WebControls.Xml对象。 - dlchambers

0

使用Linq2XML - 它比其他任何XML工具更强大...它允许您像数据集或其他强类型数据源一样查询和创建/读取/更新/删除(CRUD)XML。

一旦您开始使用Linq,您就不会回到旧的方式...它绝对非常棒!


6
您说得没错,Linq确实是用于处理XML的微软官方推荐升级方案,但是为了完整起见,您的回答需要提供相关代码来展示如何做到您所讲的。 - TheAtomicOption

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接