[英]Error reading xml files in ftp with XDocument.Parse
我尝试在四个 ftp 文件夹中读取 xml 经常(10 次 7 次)我收到有关 xml 文件的错误(如“出现意外的文件结尾”等),但文件 100% 正确。
我读取 xml 以返回文件中的订单标题列表。
WebClient 是最好的方法吗?
private static async Task<List<Order>>GetOrdersFromFolder(List<string>filesList,string folder)
{
var orders = new List<Order>();
foreach (var file in filesList)
{
var extension = Path.GetExtension(file);
if (extension == ".xml")
{
WebClient request = new WebClient();
string url = "ftp://xxxxxxx/" + "myfiles/" + folder + "/" + file;
request.Credentials = new NetworkCredential("user", "pwd");
var stringData = await request.DownloadStringTaskAsync(url);
XDocument doc = XDocument.Parse(stringData);
IEnumerable<IEnumerable<XElement>> ordersList = GetXElement(doc);
foreach (var order in ordersList)
{
var order = new Order();
order.FullPath = url;
foreach (var field in order)
{
var name = (string)field.Attribute("name");
MapField(order, field, name);
}
orders.Add(order);
}
}
}
return orders;
}
最有可能发生这些类型错误只是因为(XML)响应没有表示父节点的主根元素,下面提到的代码可能是解决冲突的线索。
XmlDocument doc = new XmlDocument();
string get_XML = "<?xml version='1.0' encoding='utf-8'?><Orders>" +
response.Trim() + "</Orders>";
doc.Load(new StringReader(get_XML));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.