如何在 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?