Đọc tệp XML thành XmlDocument


103

Tôi rất mới với C #. Tôi có tệp XML (text.xml). Tôi muốn đọc nó trong XmlDocumentvà lưu trữ luồng trong biến chuỗi.


1
Cảm ơn bạn cả sự giúp đỡ của bạn.
AJP

Câu trả lời:


169

Sử dụng XmlDocument.Load()phương pháp để tải XML từ tệp của bạn. Sau đó, sử dụng thuộc XmlDocument.InnerXmltính để lấy chuỗi XML.

XmlDocument doc = new XmlDocument();
doc.Load("path to your file");
string xmlcontents = doc.InnerXml;

2
XmlDocumentkhông chứa định nghĩa cho Load.
Matt Clark

Tôi đã từ chối tất cả những cái này vì không cái nào hoạt động. Hóa ra, tôi đang phát triển cho WindowsRT và Compact .NET Framework có rất nhiều tính năng bị loại bỏ. Bao gồm rất nhiều cái mà tôi cần ... Chẳng hạn như XmlDocument.Load()và và hàm tạo StreamReaderStreamReader(filePath)
Matt Clark

11
@MattClark: Tôi cảm thấy nỗi đau của bạn - Tôi đã phải vật lộn với sự mơ hồ và hạn chế của CF trong hai năm nay - nhưng đó không có lý do gì để phản đối. OP không chỉ định CF, và vì vậy không có lý do gì những người trả lời lại xem xét CF.
B. Clay Shannon


6

Hy vọng bạn không phiền Xml.Linq và .net3.5 +

XElement ele = XElement.Load("text.xml");
String aXmlString = ele.toString(SaveOptions.DisableFormatting);

Tùy thuộc vào những gì bạn quan tâm, bạn có thể bỏ qua toàn bộ phần var 'chuỗi' và chỉ sử dụng các đối tượng XLinq


6
XmlDocument doc = new XmlDocument();
   doc.Load("MonFichierXML.xml");

    XmlNode node = doc.SelectSingleNode("Magasin");

    XmlNodeList prop = node.SelectNodes("Items");

    foreach (XmlNode item in prop)
    {
        items Temp = new items();
        Temp.AssignInfo(item);
        lstitems.Add(Temp);
    }

1
var doc = new XmlDocument(); 
doc.Loadxml(@"c:\abc.xml");

Lưu ý rằng câu hỏi cũng yêu cầu lưu trữ nội dung XML thành một chuỗi.
phút

XmlDocument.LoadXml()tải một chuỗi XML. Để tải tệp XML theo tên, hãy sử dụng XmlDocument.Load()như câu trả lời được chấp nhận gợi ý.
François Beaune
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.