我需要检查XML文件中的元素是否存在。在这里搜索之后,我尝试了一个我在这里找到的类似问题的代码,所以代码看起来像这样(它使用foreach循环,因此它会检查组机场中的每个机场):
string icao = airport.Attributes.GetNamedItem("icao").Value;
if(airports.SelectSingleNode("/vEsup/airports/airport/" + icao + "/departures")==null)
{
MessageBox.Show("I exist!");
}
请注意,消息框仅用于测试,我发现它是检查代码是否正常工作的最简单方法。但是,我发现无论我输入什么路径,它都会显示消息框,无论它是否存在于XML文件中。
答案 0 :(得分:2)
您也可以使用Linq查询特定的xml节点和属性。 以下是类似示例的链接: http://www.codearsenal.net/2012/07/c-sharp-load-xml-using-xlinq.html
答案 1 :(得分:0)
“显示消息框是否存在于XML文件中。”在检查XML if (a.SelectSingleNode(...)==null)
中不存在的节点时,似乎不正确。
您很可能需要为节点正确指定名称空间。 (需要示例XML以提供更好的建议)
答案 2 :(得分:0)
在你的'if'块中,你不是在检查IF是否为空?
我的猜测 - 我可能在这里错了 - 是你的意思:
string icao = airport.Attributes.GetNamedItem("icao").Value;
if(airports.SelectSingleNode("/vEsup/airports/airport/" + icao + "/departures")!=null)
{
return true;
}
MessageBox.Show("I exist!");