asp.net 遍历XML文件节点信息

XML文件,随便,下面是个示例:
<?xml version="1.0" encoding="utf-8" ?>
<WebSites>
<WebSite>
<WebTitle>爱178影院</WebTitle>
<WebUrl>http://www.ai178.com</WebUrl>
<WebContent value="精彩影视网">带给您最佳的视觉欣赏效益</WebContent>
</WebSite>
</WebSites>
遍历方法:
/// <summary>
/// 遍历XML文件,写在页面上
/// </summary>
/// <param name="node"></param>
public void ShowNode(XmlNode node)
{
//输出节点类型
Response.Write("<li>节点类型:"+node.NodeType.ToString()+"</li><br>");
//判断节点是否有子节点,当无子节点时
if (!node.HasChildNodes)
{
//如果没有子节点输出该节点所有元素值
Response.Write("元素值: "+node.InnerText+"<br>");
}
//当当前节点类型为元素时
if(node.NodeType==XmlNodeType.Element)
{
//元素节点有属性值时
if (node.Attributes.Count > 0)
{
for(int i=0;i<node.Attributes.Count;i++)
{
//输出节点元素属性名称和属性值
Response.Write("属性:"+node.Attributes[i].LocalName+" = "+node.Attributes[i].Value+"<br>");
}
}
}
//判断节点是否有子节点,当有节点时
if(node.HasChildNodes)
{
for (int i = 0; i < node.ChildNodes.Count; i++)
{
//递归调用
ShowNode(node.ChildNodes[i]);
}
}
}

调用方法:

XmlDocument xmldoc = new XmlDocument();
//加载XML文档
xmldoc.Load(MapPath("WebSite.xml"));

//遍历XML的所有节点,包括XML的声名,如:<?xml version="1.0" encoding="utf-8"?>
ShowNode(xmldoc);
////遍历XML的第一个子级,即XML的声名,如:<?xml version="1.0" encoding="utf-8"?>
//ShowNode(xmldoc.FirstChild);
////遍历XML的最后一个子级,即XML的元素主体,因为XML只能且必须有一个根元素,所以,此为遍历XML的除声名外的部份
//ShowNode(xmldoc.LastChild);
//传入根节点
// ShowNode(xmldoc.DocumentElement);

posted on 2010-10-07 13:30  陈老师博客  阅读(810)  评论(0编辑  收藏  举报

导航