我必须在当前项目中分析很多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
的情况下进行检查?
修改
我使用XPathDocument
和XPathNavigator
制作了新方法。感谢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; } }
答案 0 :(得分:3)
XPathDocument使用XPath提供对XML文档内容的快速,只读访问。
或者使用XmlTextReader(最快),它提供对XML数据的快速,仅向前,非缓存访问。