.Net 读取xml
一、常规方法
1.知识介绍

//初始化一个xml对象
XmlDocument xml = new XmlDocument();
//加载xml文件
xml.Load("文件路径");//xml.LoadXml("字符串");
//读取指定的节点
XmlNode xmlNode = xml.SelectSingleNode("/节点名");
//判断节点下是否有子节点
xmlNode.HasChildNodes;
//读取节点下的所有子节点
XmlNodeList xmlNodeList = xmlNode.ChildNodes;
//读取同名同级多个节点列表
XmlNodeList xmlNodeList = xml.SelectNodes("/root/节点名");
//读取节点的属性
string attribute = xmlNode.Attributes["属性名"].Value;
//读取节点的文本
string value = xmlNode.InnerText; //创建一个新的节点
XmlNode xmlNode = xml.CreateElement("节点名"); //保存xml文件
xml.Save("文件路径");

2.实例

//创建并初始化一个xml对象
XmlDocument xml = new XmlDocument();
//加载xml文件
try
{
xml.Load(HttpContext.Current.Server.MapPath("~/datafunc/allmana.xml"));
}
catch (Exception)
{ throw new ExceptionMsg(4, "加载xml文件失败!");
}
//读取节点
XmlNode snXmlNode = xml.SelectSingleNode("/Config/SystemName");
SystemName = snXmlNode.InnerText;

读取带命名空间的XML:
[html] view plain copy print?在CODE上查看代码片派生到我的代码片
<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.lucernepublishing.com"
xml:base="http://www.semanticweb.org/ontologies/2012/2/OntologyMinePower.owl">
<book>
<title>C语言</title>
<author name ="XIAO">
<age></age>
</author>
<price></price>
</book>
<book>
<title>数据库</title>
<price></price >
</book >
<book>
<title>数据结构</title>
<age></age>
<author name ="Wang">
<age></age>
<sex>female</sex>
</author>
<price>66.5</price >
</book >
</bookstore> protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "";
XmlDocument doc = new XmlDocument();
string xmlPath = Server.MapPath("xml/xml3.xml");
doc.Load(xmlPath);
XmlElement root = doc.DocumentElement; XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("ab", "http://www.lucernepublishing.com"); XmlNodeList listNodes = root.SelectNodes("/ab:bookstore/ab:book[ab:author[ab:sex]]/ab:price", nsmgr);
foreach (XmlNode node in listNodes)
{
Label1.Text += node.InnerText + "<br/>"; //显示66.5
}
}
二、Linq读取xml文件
1.知识介绍
a.XDocument,这是Linq to xml常用类之一,提供处理xml文档的方法,包括声明、注释各处理指令。
b.XElement 它表示一个xml元素,可以用此类创建元素,更改元素内容;添加、更改、删除子元素;向元素中添加属性;或以文本格式序列化元素内容。
c.XAttribute 它用来处理元素的属性
2.实例
创建xml文件

//创建XDocument对象,并实例化对象
XDocument xdoc = new XDocument(
//xml的格化与编码
new XDeclaration("1.0", "utf-8", "yes"),
//创建元素
new XElement("Config",
//创建元素,并做上一元素的子元素
new XElement("System",
//创建元素的属性
new XAttribute("Name", "allmana"),
new XElement("StoreName", "省妇幼店")
),
//创建同级元素
new XElement("System",
new XAttribute("Name", "allmana1"),
new XElement("StoreName", "市妇幼店")
)
)
);
//保存xml文件
xdoc.Save(HttpContext.Current.Server.MapPath("~/DataConfig/Config.xml"));
.Net 读取xml的更多相关文章
- 读取xml数据装配到字典中之应用场景
前段时间看到支付宝设置里面有个多语言这个功能,蛮有意思的,就想双休没事的话做个相关的demo玩玩,可是礼拜六被妹子拽出去玩了一天,来大上海有大半年了,基本没有出去玩过,妹子说我是超级宅男,也不带她出去 ...
- 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值
前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...
- MFC如何读取XML
<?xml version="1.0" encoding="utf-8"?> <Cases> <case> <No&g ...
- 使用dom4j读取xml连接数据库与之单例模式
使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...
- java DOM4J 读取XML
最近学习Java,在处理XML文档的时候,查阅相关资料,发现了DOM4J这个jre库,相对C#的XML处理来说,功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.ut ...
- C#中常用的读取xml的几种方法(转)
本文完全来源于http://blog.csdn.net/tiemufeng1122/article/details/6723764,仅作个人学习之用. XML文件是一种常用的文件格式,例如WinFor ...
- wcf序列化大对象时报错:读取 XML 数据时,超出最大
错误为: 访问服务异常:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出 错: request.InnerException 消息是“反序 ...
- C#中常用的几种读取XML文件的方法
1.C#中常用的几种读取XML文件的方法:http://blog.csdn.net/tiemufeng1122/article/details/6723764/
- 利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合
转自:http://blog.csdn.net/zhao19861029/article/details/8473245 首先实现生成对应的JAVAbean的XML文件方法 /** * DMO4J写入 ...
- 读取xml文件报错:Invalid byte 2 of 2-byte UTF-8 sequence。
程序读取xml文件后,系统报“Invalid byte 2 of 2-byte UTF-8 sequence”错误,如何解决呢? 1.程序解析xml的时候,出现Invalid byte 2 of 2- ...
随机推荐
- Linux下TFTP的安装,配置和操作
注:转载他人,仅供自己研究学习使用 TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现.嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支 ...
- CSS3的翻转效果
css3图片与文字3D transform切换: http://www.w3cplus.com/demo/419.html 详细的CSS3属性详解: http://www.zhangxinxu.com ...
- iOS开发app自动更新的实现
#define kStoreAppId @“xxxxxxxxx” // (appid数字串) -(void)checkAppUpdate { NSDictionary *infoDict = [[NS ...
- 用block解决nstimer循环引用
大多数开发者可能都会这样来实现定时器.创建定时器的时候,由于目标对象是self,所以要保留此实例.然而,因为定时器是用实例变量存放的,所以实例也保留了定时器,这就造成了循环引用.除非调用stop方法, ...
- POJ 1065 Wooden Sticks#贪心+qsort用法
(- ̄▽ ̄)-* 这道题用到了cstdlib库的qsort()函数: 用法链接:http://www.cnblogs.com/syxchina/archive/2010/07/29/2197382.h ...
- 放弃阿里云主机,选择高性价比Vultr VPS免备案
阿里云主机ECS推广多年后,质量有所改善,但我依然强烈不推荐阿里云主机.考虑性价比带宽速度等因素后,我推荐的vps品牌有vultr和digitalocean,还有大名鼎鼎的linode,是中国用户的最 ...
- FreeBSD安装桌面环境
安装Xorg cd /usr/ports/x11/xorg-minimal make install clean 或 pkg install xorg-minimal 如果最小化安装xorg-serv ...
- 创建 .gitignore 文件过滤规
文件 .gitignore 的格式规范如下: 所有空行或者以注释符号 # 开头的行都会被 Git 忽略. 可以使用标准的 glob 模式匹配. 匹配模式最后跟反斜杠(/)说明要忽略的是目录. 要忽略指 ...
- 第二次冲刺spring会议(第六次会议)
[例会时间]2014/5/8 21:15 [例会地点]9#446 [例会形式]轮流发言 [例会主持]马翔 [例会记录]兰梦 小组成员:兰梦 ,马翔,李金吉,赵天,胡佳 奇
- Developing a Custom Membership Provider from the scratch, and using it in the FBA (Form Based Authentication) in SharePoint 2010
//http://blog.sharedove.com/adisjugo/index.php/2011/01/05/writing-a-custom-membership-provider-and-u ...