将XML文件读入XmlDocument

113

我对C#非常新手。我有一个XML文件(text.xml)。我想在XmlDocument中读取并将流存储在字符串变量中。

5个回答

186

使用XmlDocument.Load()方法从文件中加载XML。然后使用XmlDocument.InnerXml属性获取XML字符串。

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

2
XmlDocument不包含Load的定义。 - Matt Clark
我将所有这些都点了踩,因为它们都没有起作用。事实证明,我正在开发WindowsRT,而Compact .NET Framework剥离了许多这些功能,包括我需要的很多功能...例如XmlDocument.Load()和StreamReader构造函数StreamReader(filePath) - Matt Clark
14
@MattClark: 我理解你的痛苦 - 我也与CF(可能指ColdFusion)的娇媚和限制斗争了两年 - 但这并不是投反对票的理由。原帖并没有指定CF,因此回答者无需考虑CF。 - B. Clay Shannon-B. Crow Raven

18
如果你的.NET版本比3.0更新,可以尝试使用System.Xml.Linq.XDocument代替XmlDocument。使用XDocument更容易处理数据。

4
这里是使用XDocument加载文件的方法:https://dev59.com/uHRB5IYBdhLWcg3wSVcI - Brian Leeming

7
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);
    }

6
希望你不介意使用Xml.Linq和.net3.5+技术。
XElement ele = XElement.Load("text.xml");
String aXmlString = ele.toString(SaveOptions.DisableFormatting);

根据你的兴趣,你可能可以跳过整个“字符串”变量部分,直接使用XLinq对象。


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

请注意,问题还要求将XML内容存储到字符串中。 - mins
4
XmlDocument.LoadXml() 方法用于加载一个 XML 字符串。如果要通过文件名加载 XML 文件,请使用建议中提到的 XmlDocument.Load() 方法。 - François Beaune

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接