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

Posted

技术标签:

【中文标题】如何在 Windows Phone 中检查 XMLNode 是不是存在【英文标题】:How to check XMLNode is exist or not in Windows Phone如何在 Windows Phone 中检查 XMLNode 是否存在 【发布时间】:2014-06-25 05:40:29 【问题描述】:

我正在编写 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”存在于某些结果中,而在其他结果中不存在,我该如何检查?

【问题讨论】:

【参考方案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;
    

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

【讨论】:

user3683136,thanx man,我怎么称呼它,在调用中有一些问题!!非常感谢!! 像这样:id = Group.TryGetElementValue("Id")【参考方案2】:

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

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

用你的 xml 试试这个 sn-p:

 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

希望对你有帮助!

【讨论】:

anonshankar,我的代码隐藏文件中没有 XmlElement 和 XmlNode,如何解决这个问题?谢谢!! @NiteshKothari 你添加了命名空间吗?使用 System.Xml anonshankar,是的,我已经添加了它!!XDocument doc = XDocument.Parse(e.Result);我得到了 XElement 和 XNode。谢谢!! anonshankar,不,我没有执行,因为我没有得到那些 XmlNode 和 XElement。一旦代码完成,然后我检查!!谢谢!! 找不到类型或名称空间“XmlNode”!!

以上是关于如何在 Windows Phone 中检查 XMLNode 是不是存在的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows Phone 8 应用程序中检查社交网络身份验证?

如何在 Windows Phone 8 中检查应用程序是不是已更新或全新安装?

如何使用 Windows Phone 8 SDK 将类序列化为 XML?

如何检查 HTML5 视频是不是在 Windows Phone 7 上结束?

计算 Windows Phone 中的 xml 节点

如何检查Windows Phone 8中的地图中心点是不是已更改