我必須分析我當前項目中的很多XML文件。
我將XML文件作爲string
對象獲取。
我寫了一個方法來檢查XML字符串是否包含任何數據。有沒有更快的方法來檢查XML文件的文檔元素下的子元素的存在
private bool ContainsXmlData(string xmlString)
{ 如果(string.IsNullOrEmpty(的xmlString)) 返回false; XmlDocument Doc = new XmlDocument(); 嘗試 { Doc.LoadXml(xmlString); } catch(XmlException) { return false; } if(!Doc.DocumentElement.HasChildNodes) return false; 返回true; }
有沒有辦法更快地執行此檢查?是否可以在不使用XmlDocument
的情況下進行檢查?
編輯
我已經做了新的方法與XPathDocument
和XPathNavigator
。感謝米奇小麥和Kragen :)
private bool ContainsXmlData(string xmlString)
{ 如果(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) { return false; } }
貴'xmlString'始終具有相同的根節點?例如' '?或者根可以不同? –
2010-08-20 11:06:04
@DHoerster它可以不同 – peter 2010-08-20 11:14:24