我在C#.net 4.0中使用XMLReader
來搜索一小段XML。我想查找XML中的特定元素,並使用XMLReader.ReadToFollowing("name")
方法查找元素。我不知道XML文檔中元素的順序;他們處於不同的次序或完全失蹤。順序對我無關緊要,但是如果元素缺失,我會拋出一個異常。C#XML解析 - 搜索特定元素
XMLReader只是前向的,所以如果我要查找的第一個元素是XML文檔中的最後一個值,則額外的讀取操作將失敗。
我正在考慮爲每個搜索創建一個新的XMLReader。我只有一小部分元素可供查找,而且XML不是很大,所以我不認爲會有太多開銷,但我可能是錯的。
當您不知道元素的順序時,是否有更好的庫用於搜索XML?或者,XML中的訂單缺乏違反XML規範?
具體來說,假設我有一些簡單的XML。一個頭和10個孩子。
<sometag>
<element1>data</element1>
<element2>data</element2>
.
.
.
<element10>data</element10>
</sometag>
打開5個XMLReader來查找這些元素會是低效嗎?我也可以使用一個閱讀器並逐步瀏覽每個元素,但是之後我需要跟蹤我找到的元素。
如果您有一個XML示例,有幾種方法可以做到這一點。我相信很多人會很樂意發表一些具體的例子 - 我知道我會!你可以採取的其他方法是通過XmlDocument和XPath使用基於DOM的解析 - http://msdn.microsoft.com/en-us/library/system.xml.xmldocument或更現代的XDocument類 - http:// msdn .microsoft.com/en-us/library/system.xml.linq.xdocument.aspx – dash