【C#】解析XML
最近在尝试用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的更多相关文章
- Android 解析XML文件和生成XML文件
解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...
- Android之解析XML
1.XML:可扩展标记语言. 可扩展标记语言是一种很像超文本标记语言的标记语言. 它的设计宗旨是传输数据,而不是显示数据. 它的标记没有被预定义.需要自行定义标签. 它被设计为具有自我描述性. 是W3 ...
- Android之Pull解析XML
一.Pull解析方法介绍 除了可以使用SAX和DOM解析XML文件,也可以使用Android内置的Pull解析器解析XML文件.Pull解析器的运行方式与SAX解析器相似.它也是事件触发的.Pull解 ...
- Android之DOM解析XML
一.DOM解析方法介绍 DOM是基于树形结构的节点或信息片段的集合,允许开发人员使用DOM API遍历XML树,检索所需数据.分析该结构通常需要加载整个文档和构造树形结构,然后才可以检索和更新节点信息 ...
- Android之SAX解析XML
一.SAX解析方法介绍 SAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备. SAX解析器是一种基于事件的解析器,事件驱动 ...
- Android 使用pull,sax解析xml
pull解析xml文件 1.获得XmlpullParser类的引用 这里有两种方法 //解析器工厂 XmlPullParserFactory factory=XmlPullParserFactory. ...
- 用 ElementTree 在 Python 中解析 XML
用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...
- java解析xml的三种方法
java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...
- WP8解析XML格式文件
DOTA2 WebAPI请求返回的格式有两种,一种是XML,一种是JSON,默认是返回JSON格式,如果要返回XML格式的话,需要在加上format=xml. 这里举一个简单的解析XML格式的例子(更 ...
- JAVA使用SAX解析XML文件
在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...
随机推荐
- 微信小程序开发思路
小程序还没有完全开放,不能真实体验,但通过文档和开发工具,可以了解到他的开发思路 下面就介绍下小程序的开发方式,希望能帮助有兴趣的朋友对整体思路有个快速了解 整体结构 默认示例项目的目录结构 从后缀名 ...
- Tomcat訪问日志浅析
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" ...
- 【php】基础学习5
主要包括PHP的错误.异常处理和调试.具体如下: <html xmlns=http://www.w3.org/1999/xhtml> <head> <meta http- ...
- 史上最简单的ButterKnife配置教程
网上的教程感觉都是抄来抄去,没一个靠谱的 还是自己丰衣足食搞一个ButterKnife配置教程吧.. 我的Android Studio版本是3.3. 1.dependencies中添加依赖 imple ...
- 通俗易懂,C#如何安全、高效地玩转任何种类的内存之Span的脾气秉性(二)。 异步委托 微信小程序支付证书及SSL证书使用 SqlServer无备份下误删数据恢复 把list集合的内容写入到Xml中,通过XmlDocument方式写入Xml文件中 通过XDocument方式把List写入Xml文件
通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的脾气秉性(二). 前言 读完上篇<通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的本质(一).>,相信大家对sp ...
- C#中?和:?和??总结
?代表可空类型修饰符 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.为了使值类型也可为空,就可以使用可空类型?:三元表达式 int a=b>c?b:c 如果b大 ...
- 转 虫师的selenium借助AutoIt识别上传(下载)详解
selenium借助AutoIt识别上传(下载)详解 2014-12-27 11:26 by 虫师, 755 阅读, 1 评论, 收藏, 编辑 AutoIt目前最新是v3版本,这是一个使用类似BAS ...
- PLSQL_统计信息系列01_统计信息的概念和重要性
2014-12-18 Created By BaoXinjian
- DBA_实践指南系列7_Oracle Erp R12监控OAM(案例)
2013-12-07 Created By BaoXinjian
- 图解最小生成树 - 克鲁斯卡尔(Kruskal)算法
我们在前面讲过的<克里姆算法>是以某个顶点为起点,逐步找各顶点上最小权值的边来构建最小生成树的.同样的思路,我们也可以直接就以边为目标去构建,因为权值为边上,直接找最小权值的边来构建生成树 ...