我有一个提供 XML 数据的链接。我想处理我的应用程序中的数据。
如何在 C# 中处理这个问题?
通过 XmlReader 还是我需要下载 XML 数据
哪一种是最佳方式?
您可以像这样从链接中获取 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);
}
我使用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];
我希望这能帮到您
使用 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;
}
见下图。
您将需要以下命名空间: System.Xml; 要了解 XPath 的工作原理,请访问:http: //www.w3schools.com/xpath/default.asp