最近在尝试用WPF搞点桌面小应用。

C#中使用System.Xml.XmlDocument类对XML文件进行操作。

文档详情如下:
https://msdn.microsoft.com/en-us/library/system.xml.xmldocument.aspx

除了文档给出的例子,还搜到了更直观的例子:

解析文件内容:

<?xml version="1.0" encoding="utf-8" ?>

<users>
<user id="1001">
<name>张三</name>
<email>123456789@136.com</email>
<phone>13400000000</phone>
</user>
<user id="1002">
<name>李四</name>
<email>123456789@126.com</email>
<phone>15800000000</phone>
</user>
</users>

解析代码:

public static void ReadParseXml()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("E:/Data/VisualStudio/C#/app001/ConsoleApp/App01/userlist.xml");
//查找<users>
XmlNode root = xmlDoc.SelectSingleNode("users");
//获取到所有<users>的子节点
XmlNodeList nodeList =root.ChildNodes;
//遍历所有子节点
foreach (XmlNode xn in nodeList)
{
XmlElement xe = (XmlElement)xn;
XmlNodeList subList = xe.ChildNodes;
foreach (XmlNode xmlNode in subList)
{
if ("name".Equals(xmlNode.Name))
{
Console.WriteLine("姓名:" + xmlNode.InnerText);
}
else if ("email".Equals(xmlNode.Name))
{
Console.WriteLine("邮箱:" + xmlNode.InnerText);
}
}
}
} public static void ReadParseXml2()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("E:/Data/VisualStudio/C#/app001/ConsoleApp/App01/userlist.xml");
//查找<users>
XmlNode root = xmlDoc.SelectSingleNode("users");
//获取到所有<users>的子节点
XmlNodeList nodeList = xmlDoc.SelectSingleNode("users").ChildNodes;
//遍历所有子节点
foreach (XmlNode xn in nodeList)
{
XmlElement xe = (XmlElement)xn;
Console.WriteLine("节点的ID为: " + xe.GetAttribute("id"));
XmlNodeList subList = xe.ChildNodes;
foreach (XmlNode xmlNode in subList)
{
Console.WriteLine(xmlNode.InnerText);
}
}
}

以上例子来自:

http://blog.163.com/nice_2011/blog/static/18900817020131260438396/

其他参考信息:

http://www.cnblogs.com/a1656344531/archive/2012/11/28/2792863.html
http://blog.csdn.net/tiemufeng1122/article/details/6723764/

【C#】解析XML的更多相关文章

  1. Android 解析XML文件和生成XML文件

    解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...

  2. Android之解析XML

    1.XML:可扩展标记语言. 可扩展标记语言是一种很像超文本标记语言的标记语言. 它的设计宗旨是传输数据,而不是显示数据. 它的标记没有被预定义.需要自行定义标签. 它被设计为具有自我描述性. 是W3 ...

  3. Android之Pull解析XML

    一.Pull解析方法介绍 除了可以使用SAX和DOM解析XML文件,也可以使用Android内置的Pull解析器解析XML文件.Pull解析器的运行方式与SAX解析器相似.它也是事件触发的.Pull解 ...

  4. Android之DOM解析XML

    一.DOM解析方法介绍 DOM是基于树形结构的节点或信息片段的集合,允许开发人员使用DOM API遍历XML树,检索所需数据.分析该结构通常需要加载整个文档和构造树形结构,然后才可以检索和更新节点信息 ...

  5. Android之SAX解析XML

    一.SAX解析方法介绍 SAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备. SAX解析器是一种基于事件的解析器,事件驱动 ...

  6. Android 使用pull,sax解析xml

    pull解析xml文件 1.获得XmlpullParser类的引用 这里有两种方法 //解析器工厂 XmlPullParserFactory factory=XmlPullParserFactory. ...

  7. 用 ElementTree 在 Python 中解析 XML

    用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...

  8. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...

  9. WP8解析XML格式文件

    DOTA2 WebAPI请求返回的格式有两种,一种是XML,一种是JSON,默认是返回JSON格式,如果要返回XML格式的话,需要在加上format=xml. 这里举一个简单的解析XML格式的例子(更 ...

  10. JAVA使用SAX解析XML文件

    在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...

随机推荐

  1. 微信小程序开发思路

    小程序还没有完全开放,不能真实体验,但通过文档和开发工具,可以了解到他的开发思路 下面就介绍下小程序的开发方式,希望能帮助有兴趣的朋友对整体思路有个快速了解 整体结构 默认示例项目的目录结构 从后缀名 ...

  2. Tomcat訪问日志浅析

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" ...

  3. 【php】基础学习5

    主要包括PHP的错误.异常处理和调试.具体如下: <html xmlns=http://www.w3.org/1999/xhtml> <head> <meta http- ...

  4. 史上最简单的ButterKnife配置教程

    网上的教程感觉都是抄来抄去,没一个靠谱的 还是自己丰衣足食搞一个ButterKnife配置教程吧.. 我的Android Studio版本是3.3. 1.dependencies中添加依赖 imple ...

  5. 通俗易懂,C#如何安全、高效地玩转任何种类的内存之Span的脾气秉性(二)。 异步委托 微信小程序支付证书及SSL证书使用 SqlServer无备份下误删数据恢复 把list集合的内容写入到Xml中,通过XmlDocument方式写入Xml文件中 通过XDocument方式把List写入Xml文件

    通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的脾气秉性(二).   前言 读完上篇<通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的本质(一).>,相信大家对sp ...

  6. C#中?和:?和??总结

    ?代表可空类型修饰符    引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.为了使值类型也可为空,就可以使用可空类型?:三元表达式    int a=b>c?b:c 如果b大 ...

  7. 转 虫师的selenium借助AutoIt识别上传(下载)详解

    selenium借助AutoIt识别上传(下载)详解 2014-12-27 11:26 by 虫师, 755 阅读, 1 评论, 收藏,  编辑 AutoIt目前最新是v3版本,这是一个使用类似BAS ...

  8. PLSQL_统计信息系列01_统计信息的概念和重要性

    2014-12-18 Created By BaoXinjian

  9. DBA_实践指南系列7_Oracle Erp R12监控OAM(案例)

    2013-12-07 Created By BaoXinjian

  10. 图解最小生成树 - 克鲁斯卡尔(Kruskal)算法

    我们在前面讲过的<克里姆算法>是以某个顶点为起点,逐步找各顶点上最小权值的边来构建最小生成树的.同样的思路,我们也可以直接就以边为目标去构建,因为权值为边上,直接找最小权值的边来构建生成树 ...