Solved

Root Element is Missing error on well formed XML

Posted on 2008-10-05
5
2,566 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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

Is Your Team Achieving Their Full Potential?

74% of employees feel they are not achieving their full potential. With Linux Academy, not only will you strengthen your team's core competencies but also their knowledge of of the newest IT topics.

With new material every week, we'll make sure that you stay ahead of the game.

Question has a verified solution.

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

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!
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…

729 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