繁体   English   中英

使用 XDocument.Parse 在 ftp 中读取 xml 文件时出错

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM