在 Web 專案中,常需根據 XML 文件動態生成樹狀導航選單。本文展示如何使用 XmlDataSource 與遞歸算法將 XML 綁定到 TreeView 控件。
<?xml version="1.0" encoding="utf-8"?>
<items id="首頁">
<item id="用戶管理" url="user.aspx"/>
<item id="新聞管理" url="newsManager.aspx"/>
<item id="新聞圖片管理" url="news_jpg_Manager.aspx"/>
<item id="新聞評論管理" url="news_Remark.aspx"/>
<item id="退出" url="exit.aspx"/>
</items>
void DataBind_TreeView()
{
XmlDataSource xds = new XmlDataSource();
xds.DataFile = Server.MapPath("managerList.xml");
XmlDocument xmlDoc = xds.GetXmlDocument();
BindXmlToTreeView(xmlDoc.DocumentElement, TreeView1.Nodes);
}
void BindXmlToTreeView(XmlNode node, TreeNodeCollection tnc)
{
string strId = node.Attributes["id"].Value;
string strUrl = node.Attributes["url"]?.Value ?? "";
tnc.Add(new TreeNode(strId, strUrl));
foreach (XmlNode n in node.ChildNodes)
{
BindXmlToTreeView(n, tnc[tnc.Count - 1].ChildNodes);
}
}
XmlDataSource 載入 XML 文件並獲取 XmlDocument。BindXmlToTreeView 遍歷 XML 節點,逐層建立 TreeNode。id、url)需與 XML 一致。url 屬性,用空字符串避免空引用異常。此模式易於擴展,支援多級嵌套選單,是構建動態導航的經典做法。