是否有更快的方法来检查XML文件的document元素下是否存在子元素

时间:2010-08-20 11:00:46

标签: c# xml

我必须在当前项目中分析很多XML文件 我将XML文件作为string对象获取 我写了一个方法来检查XML String是否包含任何数据。

private bool ContainsXmlData(string xmlString)

{   if(string.IsNullOrEmpty(xmlString))    返回false;   XmlDocument Doc = new XmlDocument();   尝试   {    Doc.LoadXml(的xmlString);   }   catch(XmlException)   {    返回false;   }   if(!Doc.DocumentElement.HasChildNodes)    返回false;   返回true;  }

有没有办法更快地执行此检查?是否可以在不使用XmlDocument的情况下进行检查?

修改

我使用XPathDocumentXPathNavigator制作了新方法。感谢Mitch Wheat和Kragen:)

private bool ContainsXmlData(string xmlString)

{   if(string.IsNullOrEmpty(xmlString))    返回false;   尝试   {    StringReader Reader = new StringReader(xmlString);    XPathDocument doc = new XPathDocument(Reader);    XPathNavigator nav = doc.CreateNavigator();    XPathNodeIterator iter = nav.Select(“ / ”);    return(iter.Count> 0)?真假;   }   catch(XmlException)   {    返回false;   }  }

1 个答案:

答案 0 :(得分:3)

XPathDocument使用XPath提供对XML文档内容的快速,只读访问。

或者使用XmlTextReader最快),它提供对XML数据的快速,仅向前,非缓存访问。