如何在Windows Phone中检查XMLNode是否存在

时间:2014-06-25 05:40:30

标签: c# windows-phone-8 xmlnode

我正在编写Windows Phone 8应用程序,我从Web服务获取XML数据,在某些响应中,在我的XML文档中我得到了一些“标签”,而在其他响应中我没有得到那些标签,那么怎么做我检查XNode是否存在? 请参阅下面的XML文档:

<?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>

现在,在上面的文件中,后代“GROUP”存在于某些结果中而在其他结果中不存在,我该如何检查?

2 个答案:

答案 0 :(得分:1)

创建一个像这样的扩展方法:

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;
    }
}

这种方法允许您保持一个干净的代码,隔离元素存在的检查。它还允许您定义默认值,这可能会有所帮助

答案 1 :(得分:1)

您可以使用XmlTextReader浏览所有节点,并查找特定的XmlNode名称。

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

使用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.
  }

也看看这个。 updating an existing xml file in Windows Phone

希望它有所帮助!