Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过C读取XML#_C#_Xml - Fatal编程技术网

C# 通过C读取XML#

C# 通过C读取XML#,c#,xml,C#,Xml,我有一个提供XML数据的链接。我想处理应用程序中的数据 如何在C#中处理此问题 通过XmlReader还是需要下载XML数据 哪一种方法是最佳的?我使用XDocument,因为它使以Linq样式查询xml变得非常简单。 除非您有非常特殊的需求或限制,否则我认为它是目前为止最方便的。首先以xml文件的形式下载数据,然后 您可以将此代码用于xml读取 XmlTextReader xmlreader = new XmlTextReader(Server.MapPath("filename.xml"))

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

如何在C#中处理此问题

通过XmlReader还是需要下载XML数据


哪一种方法是最佳的?

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

首先以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];

我希望这将帮助您

您可以像这样从链接中获取xml文档

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

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

    }
不,您可以使用它来解析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); 
}

使用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;
}
public T反序列化(字符串xml)
{
T反序列化;
XmlSerializer XmlSerializer=新的XmlSerializer(typeof(T));
使用(StringReader StringReader=new StringReader(xml))
{
var xmlReaderSettings=新的xmlReaderSettings()//
使用(XmlReader=XmlReader.Create(stringReader,xmlReaderSettings))
{
xmlReader.MoveToContent();
反序列化=(T)xmlSerializer.Deserialize(xmlReader);
}
}
返回反序列化;
}
参见下图

您将需要以下命名空间: System.Xml 要了解XPath的工作原理,请转到此处:

System.Linq.Xml名称空间包含用于读取和操作Xml的良好库。您可以说,您从某种提要接收Xml数据。也许您可以指定您想要的是JSON?JSON与Xml几乎是一样的,但我发现处理JSON更容易/更有趣。许多web服务都可以用Xml和JSON进行回复。