您可以使用XElement裡的方法(Method),像是Element() 和Elements()來存取XML的元素。
public sealed class SiteStructure
{
static readonly SiteStructure _instance = new SiteStructure();
public static SiteStructure Instance
{
get { return _instance; }
}
XElement _x;
private SiteStructure()
{
string mapLoc =
HttpContext.Current.Request.MapPath("~/App_Data/Map1.xml");
_x = XElement.Load(mapLoc);
}
}
MapPath從虛擬路徑轉換為一個真正的服務器路徑。意思是可以很容易地通過其名稱打開一個XML文件,讓XElement.Load讀取數據。這是一個靜態方法,它允許你將XML加載到內存中。在這一點上,整個XML文件現在被解析和駐留在內存中。文件系統或網絡的存取不是必要的。
App_Data文件夾是資料庫文件或XML文件中的特殊ASP.NET文件夾。你可以有一個XML文件中的App_Data文件夾。檢視App_Code文件夾,然後新增一個新的C#類別。你可以讓類別獨立。
假設被裝載的XElement的XML,使用的是如同資料庫中的XML,但完全是在內存中。查詢是本機。下面範例是查詢表達式是如何使用。
public void Main()
{
// 取得配對出指定的標題頁。
string t = "title";
var v = from page in _x.Elements("SitePage")
where t == page.Element("Title").Value
select page;
// 得到第一頁的類別配對。
string c = v.First().Element("Category").Value;
// 計數與該類別元素值元素的數量。
int count = (from p in _x.Elements("SitePage")
where p.Element("Category").Value == c &&
p.Element("Visibility").Value == "Regular"
select p).Count();
}
這是本文使用的XML。可以對配上面的程式碼表示使用標記和屬性名稱中使用的字串。表示這部分是完全應用程式特定的XML將有所不同。
可以使用一些本文中的程式碼範例,了解是如何處理的XML。
<?xml version="1.0"?>
<ArrayOfSitePage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SitePage>
<Visibility>Supplementary</Visibility>
<Title>C# .NET Examples and Resources</Title>
<Url></Url>
<Category>None</Category>
</SitePage>
<SitePage>
<Visibility>Supplementary</Visibility>
<Title>Usability Guidelines for Web Writing</Title>
<Url>Content/Usability-Writing.aspx</Url>
<Category>None</Category>
</SitePage>
<SitePage>
<Visibility>Regular</Visibility>
<Title>Alphanumeric Sorting in C#</Title>
<Url>Content/Alphanumeric-Sorting.aspx</Url>
<Category>Algorithms</Category>
</SitePage>
<SitePage>
<Visibility>Regular</Visibility>
<Title>Word Count Algorithm in C#</Title>
<Url>Content/Word-Count-Algorithm.aspx</Url>
<Category>Algorithms</Category>
</SitePage>
</ArrayOfSitePage>
筆者使用XElement和它的Load方法可以快速輕鬆地加載XML。加載你的XML文件中的單個語句,然後執行查詢它來生成輸出。改進可存儲更多的詳細數據,或在運行時修改。
-雲遊山水為知已逍遙一生而忘齡- 電腦神手
沒有留言:
張貼留言