Nitesh Kothari
Nitesh Kothari

Reputation: 888

How to check XMLNode is exist or not in Windows Phone

I am writing Windows Phone 8 application, and I am getting XML data from web service,in some response, in my XML document I am getting some "Tags" and in other response I do not getting those tags, so how do I check that XNode is exist or not? See my XML document below:

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <Group>
     <Id>205647</Id>
     <Name>Docs</Name>
   </Group>

   <Group>
    <Id>205648</Id>
    <Name>Photos</Name>
   </Group>
</root>

Now, in above document, the Descendant "GROUP" is exist in some results and doesn't exist in other results,How do I check that?

Upvotes: 2

Views: 174

Answers (2)

Kulasangar
Kulasangar

Reputation: 9454

You could go through all nodes with the XmlTextReader and look for a specific XmlNode Name.

http://www.w3schools.com/xpath/xpath_syntax.asp

Try this snippet with your xml:

 XmlDocument doc = new XmlDocument();
  doc.Load("your.xml");

  //Select the book node with the matching attribute value.
  XmlNode nodeToFind;
  XmlElement root = doc.DocumentElement;

  // Selects all the title elements that have an attribute named group
  nodeToFind = root.SelectSingleNode("//title[@group]");

  if( nodeToFind != null )
  {
       // It was found, manipulate it.
  }
  else
 {
       // It was not found.
  }

Have a look at this too. updating an existing xml file in Windows Phone

Hope it helps!

Upvotes: 1

Amit Bhatiya
Amit Bhatiya

Reputation: 2621

Create an extension method like this :

public static string TryGetElementValue(this XElement parentEl, string elementName, string defaultValue = null) 
{
    var foundEl = parentEl.Element(elementName);
    if(foundEl != null)
    {
         return foundEl.Value;
    }
    else
    {
         return defaultValue;
    }
}

This approach allows you to keep a clean code with isolating the check of element presence. It also allow you to define a default value, which can be helpful

Upvotes: 1

Related Questions