Share code web lâu rồi, share video nhiều rồi, cũng nên dành chút thời gian chia sẻ chút kinh nghiệm lượm nhặt được về lập trình chứ nhỉ. OK, bài ngày hôm nay sẽ là đọc file XML sử dụng Linq
Đọc XML trong Linq thì có nhiều cách khác nhau. Nhưng nếu bạn nào biết cách sử dụng Linq thì sẽ thấy nó rất mạnh và đặc biệt là rất nhanh trong sử lý. Nhưng cũng qua đó, nếu bạn nào mới đi vào nghiên cứu Linq thì chúng ta sẽ gặp phải những bỡ ngỡ ban đầu.
Bài viết sau sẽ hướng dẫn bạn một cách cơ bản bỏ qua những bỡ ngỡ đó, dễ dàng tiếp cận với lập trình Linq trong C#. OK, bắt đầu nhé.
Để đọc XML bằng cách sử dụng Linq thì tôi có chia sẻ với bạn 2 cách đọc dưới đây, bạn có thể chọn 1 trong 2 đều được.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //Note: Below one is using the LINQ to XML var path = Assembly.GetExecutingAssembly().Location; path = path.Substring(0, path.LastIndexOf('\\')) + "\\" + "LocationsToWatch.xml"; XDocument xmlDoc = XDocument.Load(path); files = (from x in xmlDoc.Root.Elements("location") select new FileToWatch { Server = (string)x.Element("server").Value ?? string.Empty, Drive = (string)x.Element("drive").Value ?? string.Empty, Folder = (string)x.Element("folder").Value ?? string.Empty, FileName = (string)x.Element("filename").Value ?? string.Empty, SendMail = (string)x.Element("sendmail").Value ?? string.Empty, FullPath = x.Element("folder").Value + x.Element("filename").Value }).ToList(); |
Cách thứ 2 sử dụng đối tượng DOM để xử lý
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //Note: below code is legacy method of writing code to read XML in to Object var xmlDoc = new XmlDocument(); xmlDoc.Load("LocationsToWatch.xml"); var itemNodes = xmlDoc.SelectNodes("locations"); foreach (XmlNode node in itemNodes) { var location = node.SelectNodes("location"); foreach (XmlNode loc in location) { var server = loc.SelectSingleNode("server").InnerText; var drive = loc.SelectSingleNode("drive").InnerText; var folder = loc.SelectSingleNode("folder").InnerText; var filename = loc.SelectSingleNode("filename").InnerText; } } |
Rất đơn giản phải không nào, hy vọng các bạn sẽ thấy thích!
You must log in to post a comment.