C# 通过C读取XML#
我有一个提供XML数据的链接。我想处理应用程序中的数据 如何在C#中处理此问题 通过XmlReader还是需要下载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"))
哪一种方法是最佳的?我使用
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进行回复。