Solved

Root Element is Missing error on well formed XML

Posted on 2008-10-05
5
2,560 Views
Last Modified: 2013-12-17
I am using C# to load a xml doucment to read.  When the software tries to read the XML is states root element is missing.  As far as I can tell the XML is well formed.  Not quite understanding where the problem is.
// XML Doucment
<?xml version="1.0"?>
<GamePhrases>
	<Phrases>
		<phraseTitle>Place</phraseTitle>
		<phraseLine1>Washington DC</phraseLine1>
		<phraseLine2>a</phraseLine2>
		<phraseLine3>a</phraseLine3>
	</Phrases>
</GamePhrases>
 
// Loading Class
 
 public class LoadPhrases
    {
        public string phraseTitle;
        public string phraseLine1;
        public string phraseLine2;
        public string phraseLine3;
 
        public LoadPhrases getRandomPhrase()
        {
          
            LoadPhrases thePhrase = new LoadPhrases();
 
            XmlDocument phraseDoc = new XmlDocument();
 
            phraseDoc.Load("GamePhrases.xml"); // <-- This throws the exception
           
 
            XmlNodeList title = phraseDoc.GetElementsByTagName("phraseTitle");
            XmlNodeList line1 = phraseDoc.GetElementsByTagName("phraseLine1");
            XmlNodeList line2 = phraseDoc.GetElementsByTagName("phraseLine2");
            XmlNodeList line3 = phraseDoc.GetElementsByTagName("phraseLine3");
            
            thePhrase.phraseTitle = title[0].InnerText;
            thePhrase.phraseLine1 = line1[0].InnerText;
            thePhrase.phraseLine2 = line2[0].InnerText;
            thePhrase.phraseLine3 = line3[0].InnerText;
 
            return thePhrase;
 
 
        }
 
    }
}

Open in new window

0
Comment
Question by:kareemjg
  • 3
5 Comments
 
LVL 22

Expert Comment

by:JimBrandley
ID: 22644965
Can you attach the file? I see nothing wrong with the XML in the post.

Jim
0
 
LVL 26

Accepted Solution

by:
Anurag Thakur earned 100 total points
ID: 22645020
tried u r code and its working perfectly
are you missing some details to tell us cause if you dont give us more details we wont be able to assist further
0
 

Author Comment

by:kareemjg
ID: 22645062
After some more troubleshooting it seems that the program is not seeing the file even though it is in the base directory.  In debuging the text variable returns a value of NULL.  Hrmm.. must be a problem with my paths.
 StreamReader streamReader = new StreamReader("GamePhrases.xml");
            string text = streamReader.ReadToEnd();
            streamReader.Close();
            
            phraseDoc.LoadXml(text);

Open in new window

0
 

Author Closing Comment

by:kareemjg
ID: 31503184
Thanks for confirming what I wasnt doing wrong.  The problem was I didnt have the file set to copy to the content directory. "Copy if Newer"
0
 

Author Comment

by:kareemjg
ID: 22645091
Thanks for confirming what I wasnt doing wrong.  The problem was I didnt have the xml property file set to copy to the content directory. "Copy if Newer"
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question