替换过时的 System.Xml.XmlDataDocument?
Posted
技术标签:
【中文标题】替换过时的 System.Xml.XmlDataDocument?【英文标题】:Replacing the obsolete System.Xml.XmlDataDocument? 【发布时间】:2011-04-14 18:11:53 【问题描述】:我在已从 .NET 2.0 升级到 .NET 4.0 的 Web 表单应用中有一个 System.Web.UI.WebControls.Xml 控件 (Xml1)
我从代码隐藏页面收到两个警告,我想对其进行处理。
...
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 替代品是什么?
【问题讨论】:
【参考方案1】:使用 Linq2XML - 它比任何其他 XML 工具都更强大......允许您像处理数据集或其他强类型数据源一样查询和创建/读取/更新/删除 (CRUD) XML .
一旦您开始使用 Linq,您将永远不会回到旧的方式......它绝对会摇滚!
【讨论】:
虽然您说 Linq 是 MS 批准的用于处理 xml 的升级是对的,但您的答案需要代码来显示如何完成您正在谈论的内容。【参考方案2】:ds.我在 3.5 中也遇到了这个问题。这是我想出的:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(ds.GetXml());
xml1.XPathNavigator = xmlDoc.CreateNavigator();
xml1.TransformSource = @"~/XSLT/LogEntryTransform.xslt";
希望对你有帮助。
【讨论】:
@Sung 不同的人,所以他不能 正是我需要的。非常感谢。 xml1 是 aspx 中的以上是关于替换过时的 System.Xml.XmlDataDocument?的主要内容,如果未能解决你的问题,请参考以下文章
替换过时的 System.Xml.XmlDataDocument?