下面是一个C#读取XML文档的比较通用的方法,可以很方便地读取XML文档格式.XML文档如下:
﹤?xml version="1.0" encoding="utf-8" ?﹥
﹤RolesRoot ID="0" RoleName="应用权限配置"
RoleValue="" RoleUrl="" RoleMark=""﹥
﹤Roles ID="CLGL" RoleName="车辆管理"
RoleValue="" RoleUrl="" RoleMark=""﹥
﹤Role ID="CLGL_CLXX" RoleName="车辆基本信息"
RoleValue="" RoleUrl="车辆管理/车辆基本信息" RoleMark=""﹥
﹤RoleChild ID="" RoleName="编辑" RoleValue=""
RoleUrl="" RoleMark="clbjqx"﹥﹤/RoleChild﹥
﹤RoleChild ID="" RoleName="修改" RoleValue=""
RoleUrl="" RoleMark="clxgqx"﹥﹤/RoleChild﹥
﹤RoleChild ID="" RoleName="删除" RoleValue=""
RoleUrl="" RoleMark="clscqx"﹥﹤/RoleChild﹥
﹤/Role﹥
﹤Role ID="CLGL_SJXX" RoleName="司机基本信息"
RoleValue="" RoleUrl="车辆管理/司机基本信息" RoleMark=""﹥
﹤RoleChild ID="" RoleName="编辑" RoleValue=""
RoleUrl="" RoleMark="sjbjqx"﹥﹤/RoleChild﹥
﹤RoleChild ID="" RoleName="修改" RoleValue=""
RoleUrl="" RoleMark="sjxgqx"﹥﹤/RoleChild﹥
﹤RoleChild ID="" RoleName="删除" RoleValue=""
RoleUrl="" RoleMark="sjscqx"﹥﹤/RoleChild﹥
﹤/Role﹥
﹤/Roles﹥
﹤Roles ID="HYGL" RoleName="" RoleValue=""
RoleUrl="" RoleMark=""﹥
﹤Role ID="" RoleName="" RoleValue=""
RoleUrl="" RoleMark=""﹥﹤/Role﹥
﹤Role ID="" RoleName="" RoleValue=""
RoleUrl="" RoleMark=""﹥﹤/Role﹥
﹤Role ID="" RoleName="" RoleValue=""
RoleUrl="" RoleMark=""﹥﹤/Role﹥
﹤/Roles﹥
﹤/RolesRoot﹥
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
C#读取XML文档的代码如下所示:
/// ﹤summary﹥
/// 获取XML文档中元素的值
/// ﹤/summary﹥
/// ﹤param name="parentNodePath"﹥父级节点位置,如RolesRoot/Roles﹤/param﹥
/// ﹤param name="childNodeName"﹥子节点名称,如要在Role节点下找相关元素值﹤/param﹥
/// ﹤param name="matchElementName"﹥要进行匹配的元素名称,如通过ID元素值来找匹配﹤/param﹥
/// ﹤param name="id"﹥ID元素值﹤/param﹥
/// ﹤param name="elementName"﹥需要获取的元素名称﹤/param﹥
/// ﹤returns﹥﹤/returns﹥
public static string GetXmlElementValue(string parentNodePath,
string childNodeName,string matchElementName,
string id, string elementName)
{
string outPut = string.Empty;
try
{
string xmlpath = ConfigurationManager.
AppSettings["RolesConfig"];
XmlDocument doc = new XmlDocument();
doc.Load(xmlpath);
XmlNodeList nodes = doc.SelectSingleNode
(parentNodePath).ChildNodes;
foreach (XmlElement node in nodes)
{
if (node.Name == childNodeName)
{
if (node.Attributes[matchElementName].Value == id)
{
outPut = node.Attributes[elementName].Value;
}
}
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
return outPut;
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
上面介绍了一般格式C#读取XML文档的方法,下面介绍读取特殊XML文件属性的方法,该XML文档定义了ID属性,如下:
﹤?xml version="1.0" encoding="utf-8" ?﹥
﹤!DOCTYPE RolesRoot [
﹤!ELEMENT Role ANY﹥
﹤!ELEMENT RoleName ANY﹥
﹤!ELEMENT RoleValue ANY﹥
﹤!ELEMENT RoleUrl ANY﹥
﹤!ELEMENT RoleMark ANY﹥
﹤!ATTLIST Role RoleID ID #REQUIRED﹥
﹤!ATTLIST RolesRoot RoleID IDREF #REQUIRED﹥
]﹥
﹤RolesRoot RoleID="0" RoleName="应用权限配置"
RoleValue="" RoleUrl="" RoleMark=""﹥
﹤Role RoleID="CLGL" RoleName="车辆管理" RoleValue=""
RoleUrl="" RoleMark=""﹥
﹤Role RoleID="CLGL_CLXX" RoleName="车辆基本信息"
RoleValue="" RoleUrl="车辆管理/车辆基本信息" RoleMark=""﹥
﹤Role RoleID="CLGL_CLXX_BJ" RoleName="编辑"
RoleValue="" RoleUrl="" RoleMark="clbjqx"﹥﹤/Role﹥
﹤Role RoleID="CLGL_CLXX_XG" RoleName="修改"
RoleValue="" RoleUrl="" RoleMark="clxgqx"﹥﹤/Role﹥
﹤Role RoleID="CLGL_CLXX_SC" RoleName="删除"
RoleValue="" RoleUrl="" RoleMark="clscqx"﹥﹤/Role﹥
﹤/Role﹥
﹤Role RoleID="CLGL_SJXX" RoleName="司机基本信息"
RoleValue="" RoleUrl="车辆管理/司机基本信息" RoleMark=""﹥
﹤Role RoleID="" RoleName="编辑" RoleValue=""
RoleUrl="" RoleMark="sjbjqx"﹥﹤/Role﹥
﹤Role RoleID="" RoleName="修改" RoleValue=""
RoleUrl="" RoleMark="sjxgqx"﹥﹤/Role﹥
﹤Role RoleID="" RoleName="删除" RoleValue=""
RoleUrl="" RoleMark="sjscqx"﹥﹤/Role﹥
﹤/Role﹥
﹤/Role﹥
﹤/RolesRoot﹥
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
我们通过ID属性进行C#读取XML文档,获取元素的值.
/// ﹤summary﹥
/// 通过ID获取元素值
/// ﹤/summary﹥
/// ﹤param name="id"﹥XML文档中定义的***ID属性﹤/param﹥
/// ﹤param name="elementName"﹥对应ID元素下要查找的元素名称﹤/param﹥
/// ﹤returns﹥﹤/returns﹥
public static string GetXmlElementValueById(string id, string elementName)
{
string outPut = string.Empty;
try
{
string xmlpath = ConfigurationManager.AppSettings["RolesConfig"];
XmlDocument doc = new XmlDocument();
doc.Load(xmlpath);
XmlElement elem = doc.GetElementById(id);
outPut = elem.Attributes[elementName].Value;
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
return outPut;
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
C#读取XML文档的相关内容就向你介绍到这里,希望对你学习或了解C#读取XML文档有所帮助。
【编辑推荐】