I am trying to use LINQ to XML in an with the XDocument object. How do you query the result element in the example below?
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
When I use a statement like this, I get the exception ‘Additional information: The ‘:’ character, hexadecimal value 0x3A, cannot be included in a name.’
XDocument doc = XDocument.Parse(xml);
string value = doc.Descendants("serv:header").First().Descendants("serv:response").First().Descendants("serv:result").First().Value;
servin your XML is a namespace prefix. It has to be associated with some URI, that identifies the namespace. Look for an attribute like this in your XML:The value inside the quotes will be the namespace. Now, in your C# code, you use that URI to create an
XNamespaceobject:And then you can use that in queries like this:
By the way, you should consider using
.Element()rather than.Descendants().First().