我正在编写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”存在于某些结果中而在其他结果中不存在,我该如何检查?
答案 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
希望它有所帮助!