如何在没有XmlDataDocument的情况下获取xml数据

时间:2013-11-16 10:38:22

标签: xml

我正在关注一个例子。但是Visual Studio说XmlDataDocument已经过时了。那么如何在没有XmlDataDocument的情况下运行这段代码。

    public XmlElement GetUserDetails(string userName)
{

    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString);
    conn.Open();
    SqlCommand cmd=new SqlCommand("select * from Orders where ShipName like @name +'%'",conn);
    SqlDataAdapter adp=new SqlDataAdapter(cmd);
    DataSet ds=new DataSet();
    cmd.Parameters.AddWithValue("@name",userName);
    cmd.ExecuteNonQuery();
    adp.Fill(ds);
    conn.Close();
    XmlDataDocument data=new XmlDataDocument(ds);
    XmlElement elemment=data.DocumentElement;
    return  elemment;



}

1 个答案:

答案 0 :(得分:0)

尝试在System.Xml.Linq命名空间中使用XElement和XDocument类型。

使用像这样的扩展方法可以轻松转换

public static XmlElement ToXmlElement(this XElement el)
{
    var doc = new XmlDocument();
    doc.Load(el.CreateReader());
    return doc.DocumentElement;
}

然后,您的方法的最后3行只需要替换为。

var data=new XDocument(ds);
var element = data.Root;
return  element.ToXmlElement();

可以缩短为

return new XElement(ds).ToXmlElement();

XElement类型有许多有用的特性。例如,可以通过调用Elements()扩展方法来查询它,该方法返回IEnumerable< XElement>。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement(v=vs.110).aspx