.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- ...
随机推荐
- 显示ubuntu 10.4右上角网络图标
在面板右击“添加到面板”,选择“通知区域”
- Sub Lime Text
Sub Lime Text License -– BEGIN LICENSE -– Andrew Weber Single User License EA7E-855605 813A03DD 5E4A ...
- 《Mastering Opencv ...读书笔记系列》车牌识别(I)
http://blog.csdn.net/jinshengtao/article/details/17883075/ <Mastering Opencv ...读书笔记系列>车牌识别(I ...
- Spring Security(02)——关于登录
目录 1.1 form-login元素介绍 1.1.1 使用自定义登录页面 1.1.2 指定登录后的页面 1.1.3 指定登录失败后的页面 1.2 http-basi ...
- 关于百度地图API (持续跟新)
一.初始化地图显示不在正中间,出现偏移 问题描述与解决办法: 代码: body, html, #allmap { width: 100%; height: 100%; overflow: hidden ...
- 【LeetCode】3. Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters. Examples: Giv ...
- hdu_3341_Lost's revenge(AC自动机+状态hashDP)
题目链接:hdu_3341_Lost's revenge 题意: 有n个模式串,一个标准串,现在让标准串重组,使得包含最多的模式串,可重叠,问重组后最多包含多少模式串 题解: 显然是AC自动机上的状态 ...
- nefu 1191 平行宇宙 (bfs)
Description 小k是时空贸易者,他经常在两个平行宇宙之间往来经商,现在他要从S点到达E点,问最少需要多长时间.(已知小k在同一个宇宙中只能向上下左右四个方向移动,每次移动需要1个单位时间,且 ...
- WTL 设置 SDI 主窗口初始大小的方法
在窗口创建之前添加一段代码 一般窗口创建函数为 wndMain.CreateEx(); 在此函数前添加 1: RECT rect = {x, y, width, height}; 然后将创建窗口函数改 ...
- 行列转换之静态、动态、PIVOT方法
/* 标题:普通行列转换(version 2.0) 作者:爱新觉罗.毓华 时间:2008-03-09 地点:广东深圳 说明:普通行列转换(version 1.0)仅针对sql server 2000 ...