How to Read a specific element value from XElement in LINQ to XML

18,568

Solution 1

XElement response = XElement.Load("file.xml"); // XElement.Parse(stringWithXmlGoesHere)
XNamespace df = response.Name.Namespace;
XElement status = response.Element(df + "Status");

should suffice to access the Status child element. If you want the value of that element as a string then do e.g.

string status = (string)response.Element(df + "Status");

Solution 2

If myXel already is the Response XElement then it would be:

var status = myXel.Elements().Where(e => e.Name.LocalName == "Status").Single().Value;

You need to use the LocalName to ignore namespaces.

Share:
18,568
Happy
Author by

Happy

Updated on June 11, 2022

Comments

  • Happy
    Happy almost 2 years

    I have an XElement which has content like this.

    <Response xmlns="someurl" xmlnsLi="thew3url">
       <ErrorCode></ErrorCode>
       <Status>Success</Status>
       <Result>
           <Manufacturer>
                <ManufacturerID>46</ManufacturerID>
                <ManufacturerName>APPLE</ManufacturerName>
           </Manufacturer>
          //More Manufacturer Elements like above here
       </Result>
    </Response>
    

    How will i read the Value inside Status element ?

    I tried XElement stats = myXel.Descendants("Status").SingleOrDefault(); But that is returning null.