Root element is missing

前端 未结 6 1994
离开以前
离开以前 2020-12-06 05:52

I am reading xml from xxx URl but i am getting error as Root element is missing.

My code to read xml response is as follows:

  XmlDocument doc = new          


        
相关标签:
6条回答
  • 2020-12-06 06:00

    I had the same problem when i have trying to read xml that was extracted from archive to memory stream.

     MemoryStream SubSetupStream = new MemoryStream();
            using (ZipFile archive = ZipFile.Read(zipPath))
            {
                archive.Password = "SomePass";
                foreach  (ZipEntry file in archive)
                {
                    file.Extract(SubSetupStream);
                }
            }
    

    Problem was in these lines:

    XmlDocument doc = new XmlDocument();
        doc.Load(SubSetupStream);
    

    And solution is (Thanks to @Phil):

            if (SubSetupStream.Position>0)
            {
                SubSetupStream.Position = 0;
            }
    
    0 讨论(0)
  • 2020-12-06 06:03

    Hi this is odd way but try it once

    1. Read the file content into a string
    2. print the string and check whether you are getting proper XML or not
    3. you can use XMLDocument.LoadXML(xmlstring)

    I try with your code and same XML without adding any XML declaration it works for me

    XmlDocument doc = new XmlDocument();
            doc.Load(@"H:\WorkSpace\C#\TestDemos\TestDemos\XMLFile1.xml");
            XmlNodeList nodes = doc.GetElementsByTagName("Product");
            XmlNode node = null;
            foreach (XmlNode n in nodes)
            {
                Console.WriteLine("HI");
            }
    

    Its working perfectly fine

    0 讨论(0)
  • 2020-12-06 06:10

    Make sure you XML looks like this:

    <?xml version="1.0" encoding="utf-8"?>
    <rootElement>
    ...
    </rootElement>
    

    Also, a blank XML file will return the same Root elements is missing exception. Each XML file must have a root element / node which encloses all the other elements.

    0 讨论(0)
  • 2020-12-06 06:20

    If you are loading the XML file from a remote location, I would check to see if the file is actually being downloaded correctly using a sniffer like Fiddler.

    I wrote a quick console app to run your code and parse the file and it works fine for me.

    0 讨论(0)
  • 2020-12-06 06:22

    Just in case anybody else lands here from Google, I was bitten by this error message when using XDocument.Load(Stream) method.

    XDocument xDoc = XDocument.Load(xmlStream);  
    

    Make sure the stream position is set to 0 (zero) before you try and load the Stream, its an easy mistake I always overlook!

    if (xmlStream.Position > 0)
    {
        xmlStream.Position = 0;
    }
    XDocument xDoc = XDocument.Load(xmlStream); 
    
    0 讨论(0)
  • 2020-12-06 06:26
    1. Check the trees.config file which located in config folder... sometimes (I don't know why) this file became to be empty like someone delete the content inside... keep backup up of this file in your local pc then when this error appear - replace the server file with your local file. This is what i do when this error happened.

    2. check the available space on the server. sometimes this is the problem.

    Good luck.

    0 讨论(0)
提交回复
热议问题