“Data at the root level is invalid. Line 1, positi

2019-05-03 21:51发布

I am wanting to parse the following xml to get richTextBox1 so show 'John Smith', '35', 'Jpeg'.

<?xml version="1.0" encoding="utf-8" ?> 
- <Games>
- <Gamer Name="John Smith" Age="35" Win%="5.33502797236373">
   <Picture-id>Jpeg</Picture-id> 
   <Game>300</Game> 
  </Gamer>
</Games>

I have used the following code to try and do this -

StringBuilder output = new StringBuilder();

String xmlString = @"Gamer.xml";

// Create an XmlReader
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
    reader.ReadToFollowing("Gamer");
    reader.MoveToFirstAttribute();
    string genre = reader.Value;
    output.AppendLine("Name" + "Age");

    reader.ReadToFollowing("Picture-id");
    output.AppendLine(reader.ReadElementContentAsString());
}

richTextBox1.Text = output.ToString();

For some reason when I execute it brings back the error - 'Data at the root level is invalid. Line 1, position 1.' How can I get this to work, any input is greatly appreciated.

标签: c# xml parsing
1条回答
聊天终结者
2楼-- · 2019-05-03 22:46

StringReader reads a literal string. You are trying to parse the string "Gamer.xml", not the contents of the file.

Use StreamReader instead.

查看更多
登录 后发表回答