0

如何检查 xml 文件以确定是否存在某些元素?例如,我的 XML 来自:

http://www.google.com/ig/api?weather=vilnius&hl=eng

我想检查“wind_condition”这个词是否存在:

if ("wind_condition") {do something}

4

4 回答 4

4

尝试:

XmlNodeList list = xml.SelectNodes("//wind_condition");

然后,只需检查返回的列表并进行相应处理。

于 2012-05-07T19:04:28.173 回答
2

您可以使用 Linq-to-Xml(未经测试)使用类似这样的方法来查询文档:

XDocument xdoc = XDocument.Load("http://www.google.com/ig/api?weather=vilnius&hl=eng");
XElement[] myElements = xdoc.Root.Element("weather")
    .Elements()
    .Where(xelement => xelement.Element("wind_condition") != null)
    .ToArray();
于 2012-05-07T19:05:44.600 回答
2

这将确定文件是否包含单词wind_condition.

if(xml.ToString().Contains("wind_condition"))
{
    // do something
}

如果你想要元素wind_condition

if(xml.Descendants("wind_condition").Count() > 0)
{
    // do something
}
于 2012-05-07T19:13:35.033 回答
2

由于您的根节点是 xml_api_reply,因此无论是否存在 wind_condition 都应该返回一个布尔值(我刚刚对其进行了测试,它似乎正在工作)

var result = (from t in loadedData.Descendants("xml_api_reply")
                     select t.Descendants("wind_condition").Any()).Single();

if(result) // equals to if wind_condition exists
{
} 
于 2012-05-07T19:14:13.467 回答