如何读取结构未知的XML

Tom*_*ove 1 c# xml

我正在为学校作业编写一个XML查看器,但我不知道如何在不知道文件结构的情况下加载XML文件.
在我读完文件后,我会在列表框中显示XML结构.

这是学校作业,这应该是结果: XML查看器

我有一个示例文件,我可以完美加载,但我坚持随机文件.

XmlDocument doc = new XmlDocument();
using(XmlReader xmlReader = XmlReader.Create("c:\\temp\\sites.xml"))
{          
   //Load file
   doc.Load(xmlReader);
   XmlNode root = doc.DocumentElement;

   foreach (XmlNode siteNode in root)
   {
      //Nodes
      XmlNode URLNode = siteNode.FirstChild;
      XmlNode EmailNode = siteNode.LastChild;

      //Create site
      Site site = new Site(URLNode.FirstChild.Value, EmailNode.FirstChild.Value);

      //Add to list
      sites.Add(site);
  }
  Console.WriteLine(sites.Count);
}
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 8

在不Site知道结构的情况下,您无法将XML数据转换为已知类(如您的类),因为您需要某种方式将数据迁移到类构造函数参数/ properties/etc.

话虽这么说,如果您只是想查看或检查XML文件本身,您可以递归检查根元素内的XmlNode元素.

XmlNode包含您需要执行此操作的所有属性,例如ChildNodes,AttributesValue.