[英]C# XML Parsing - Searching for specific elements
我在C#.net 4.0中使用XMLReader
來搜索一小段XML。 我想在XML中找到特定的元素,並且正在使用XMLReader.ReadToFollowing("name")
方法來查找元素。 我不知道這些元素在XML文檔中的順序。 它們處於差異順序或完全缺失。 順序對我來說並不重要,但是如果缺少該元素,我將拋出異常。
XMLReader僅向前,因此,如果我要查找的第一個元素是XML文檔中的最后一個值,則其他讀取將失敗。
我正在考慮為每個搜索創建一個新的XMLReader。 我只有很少的元素集,而且XML也不是很大,所以我認為不會有太多開銷,但是我可能是錯的。
當您不知道元素的順序時,是否有更好的庫可用於搜索XML? 還是XML缺乏順序違反了XML規范?
具體來說,假設我有一些簡單的XML。 一個頭和十個孩子。
<sometag>
<element1>data</element1>
<element2>data</element2>
.
.
.
<element10>data</element10>
</sometag>
打開5個XMLReader來查找那些元素是否效率低下? 我還可以使用一個閱讀器並逐步遍歷每個元素,但隨后我需要跟蹤找到的元素。
嘗試使用XPath。 它快得多,並且對元素的順序(僅是層次結構)不敏感。
MSDN文檔: http : //msdn.microsoft.com/zh-cn/library/ms256086.aspx
使用XPath進行編程確實需要一些學習。 並且,如果您的XML指定了名稱空間,則需要確保將其包含在XPath查詢中。
您具有.NET 4.0,因此請使用Linq到XML。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.