Unexpected node type Element

12,639

Body and Result should be a classes as well because it contains elements. Something like

[XmlRoot(ElementName = "Envelope")]
public class Add_Recipent_response
{
    public Body Body { get; set; }
}

public class Body
{
    public Result RESULT { get; set; }
}

public class Result
{
    public string SUCCESS { get; set; }
    public string RecipientId { get; set; }
    public string ORGANIZATION_ID { get; set; }
}
Share:
12,639
Robert
Author by

Robert

Novice, wannabe programmer.

Updated on June 04, 2022

Comments

  • Robert
    Robert about 2 years

    I have the following XML:

    <Envelope>
     <Body>
      <RESULT>
       <SUCCESS>TRUE</SUCCESS>
       <RecipientId>9876543210</RecipientId>
       <ORGANIZATION_ID>12345-67890-b9e6bcd68d4fb511170ab3fcff55179d</ORGANIZATION_ID>
      </RESULT>
     </Body>
    </Envelope>
    

    Which I'm trying to deserialize to:

    [XmlRoot(ElementName = "Envelope")]
    public class Add_Recipent_response
    {
        public string Body { get; set; }
        public string RESULT { get; set; }
        public string SUCCESS { get; set; }
        public string RecipientId { get; set; }
        public string ORGANIZATION_ID { get; set; }
    }
    

    With this method:

    protected void deserializeXML(string xmlResponse)
    {
        XmlSerializer deserializer = new XmlSerializer(typeof(Add_Recipent_response));
        using (TextReader reader = new StringReader(xmlResponse))
        {
            try
            {
                Add_Recipent_response XmlData = (Add_Recipent_response)deserializer.Deserialize(reader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.GetBaseException());
            }
        }
    }
    

    This throws an exception:

    InnerException = {"Unexpected node type Element. ReadElementString method can only be called on elements with simple or empty content. Line 4, position 2."}

    Can anyone tell me what I'm doing wrong?