通过C#读取XML

时间:2012-09-29 05:13:12

标签: c# xml

我有一个提供XML数据的链接。我想在我的应用程序中处理数据。

如何在C#中处理此问题?

通过XmlReader或我是否需要下载XML数据

哪一种是最佳方式?

5 个答案:

答案 0 :(得分:3)

您可以通过此链接获取xml文档

    using (WebClient wc = new WebClient())
    {            
        string xml = wc.DownloadString(url);

        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(xml);

    }

不,您可以使用System.Xml.Linq来解析xmlDoc

// Create the query 
var custs = from c in xmlDoc.Elements("Customers") 
          select c ;

// Execute the query 
foreach (var customer in custs) 
{ 
     Console.WriteLine(customer); 
}

答案 1 :(得分:0)

我使用XDocument因为它使得以Linq样式查询xml变得非常简单。 除非你有非常特殊的需求或限制,否则我认为这是最方便的。

答案 2 :(得分:0)

首先在xml文件中下载您的数据然后 您可以将此代码用于xml读取

XmlTextReader xmlreader = new XmlTextReader(Server.MapPath("filename.xml"));
DataSet ds = new DataSet();
ds.ReadXml(xmlreader);
DataTable dt = new DataTable();
dt = (DataTable)ds.Tables[0];

我希望这会对你有所帮助

答案 3 :(得分:0)

使用XmlSerializer将您收到的字符串反序列化为对象图:

public T Deserialize<T>(string xml)
{
    T deserialized;
    XmlSerializer xmlSerializer= new XmlSerializer(typeof(T));
    using (StringReader stringReader = new StringReader(xml))
    {
        var xmlReaderSettings = new XmlReaderSettings(); //
        using (XmlReader xmlReader = XmlReader.Create(stringReader, xmlReaderSettings))
        {
            xmlReader.MoveToContent();
            deserialized = (T)xmlSerializer.Deserialize(xmlReader);
        }
    }
    return deserialized;
}

答案 4 :(得分:0)

见下图。

enter image description here

您需要以下命名空间:  的的System.Xml; 要了解XPath的工作原理,请转到此处: http://www.w3schools.com/xpath/default.asp