1

我需要检查 XML 文件中的元素是否存在。在这里搜索之后,我尝试了一个来自我在这里找到的非常相似的问题的代码,所以代码看起来像这样(它使用 foreach 循环,因此它检查组机场中的每个机场):

string icao = airport.Attributes.GetNamedItem("icao").Value;
            if(airports.SelectSingleNode("/vEsup/airports/airport/" + icao + "/departures")==null)
            {
                MessageBox.Show("I exist!");
            }

请注意,消息框仅用于测试,我发现它是检查代码是否正常工作的最简单方法。但是,我发现无论我输入什么路径,它总是显示消息框,无论它是否存在于 XML 文件中。

4

3 回答 3

2

您也可以使用 Linq 查询特定的 xml 节点和属性。这是类似示例的链接:http: //www.codearsenal.net/2012/07/c-sharp-load-xml-using-xlinq.html

于 2012-12-13T22:42:23.620 回答
0

“显示消息框是否存在于 XML 文件中。” 当您检查节点是否不存在于 XML 时,这似乎是不正确的if (a.SelectSingleNode(...)==null)

您很可能需要为节点正确指定命名空间。(需要示例 XML 来提供更好的建议)

于 2012-12-13T22:41:10.480 回答
0

在你的'if'块中,你不是在检查字符串是否为空吗?

我的猜测 - 我在这里可能是错的 - 你的意思是:

    string icao = airport.Attributes.GetNamedItem("icao").Value;
        if(airports.SelectSingleNode("/vEsup/airports/airport/" + icao + "/departures")!=null)
        {
            return true;
        }
MessageBox.Show("I exist!");
于 2012-12-13T22:45:42.420 回答