这个xmlHepler类使用DocumentElement.SelectNodes来选择XML节点,之后if (xnode.Attributes[RootAttName.ToString()].InnerText == RootAttValue.ToString())获取相关属性的节点.
使用方法GetXmlToDataTable()来构造DataTable,把XML节点下所有数据导入到DataTable。
这个类的源码关键的地方都写了注释,很简单。
下面我们来看看如何调用此类:
在程序Page_Load测试调用SysRightsDb.xml,并把相关数据显示出来。
源码如下:
调用xmlHepler Code
protected void Page_Load(object sender, EventArgs e)
{
xmlHepler<string> xml = new xmlHepler<string>(Server.MapPath("SysRightsDb.xml"));
xml.xmlRoot = "rights";
// 调用SYS节点下数据
xml.xmlRootAttName = "name";
xml.xmlRootAttValue = "SYS";
xml.xmlSplitField = "code,name";
DataTable dt = xml.GetXmlToDataTable();
Response.Write("<b>系统权限</b><br>");
foreach (DataRow dr in dt.Rows)
{
Response.Write("name:" dr["name"].ToString() " code:" dr["code"].ToString());
Response.Write("<br>");
}
// 调用financial节点下数据
xml.xmlRootAttName = "name";
xml.xmlRootAttValue = "financial";
xml.xmlSplitField = "code,name";
dt = xml.GetXmlToDataTable();
Utils.Response("<b>子系统权限</b><br>");
foreach (DataRow dr in dt.Rows)
{
Response.Write("name:" dr["name"].ToString() " code:" dr["code"].ToString());
Response.Write("<br>");
}
}
嗯,到现在为此,很简单就可以实现调用XML节点数据了,最后看下效果图:
教程比较短,多多交流! |