XML

xmlreader,
xmltextrear,
xmlwriter
xmlnode
xmlnodelist
xmlload
xmldocment
文档对象模型编程(DOM)
1.读取xml节点
1)XML文件中,她的数据表现形式有两种,主要表现为元素和属性两种形式。因此对XML文件进行读取也分两种读取方式,即元素读取和属性读取。
childnodes,name,elment,getattribute,

XMLFile.xml
<books>
<csharp>
<bookname>21天学C#</bookname>
<booknumber>111111</booknumber>
<bookprice>1000</bookprice>
</csharp>
</books>
2).
web窗体

pageload
设计
加button,双击添加下面代码
加xml控件
using system.xml;

XmlDocment doc=new XmlDocment();//创建XmlDocument对象
doc.Load(Server.MapPath("XMLFile.xml)");//加载文件
Xml1.Document=doc;

3).
去掉xml控件
加button
XmlDocment doc=new XmlDocment();//创建XmlDocument对象
doc.Load(Server.MapPath("XMLFile.xml)");//加载文件
XmlNode node=doc.SelectSingleNode("books/csharp")//选择节点(books下的所有节点)
string flag=node.["bookname"].InnerText;//读取节点属性值
Response.Write(flag);//打印flag
运行

2.使用XmlDocment读取XML
XmlDocment实现了DOM标准1和DOM标准2的核心推荐
标准。
XmlDocument可以称为是DOM树中所有节点的容器,或者也可以称作文档根。
下面介绍使用XmlDocument读取XML根.很实用。
注释掉上面代码,在PAGELODE加下面代码。
XMLdocmument doc=new xmldocument();
doc.load(server.mappath("XMLFile.xml"));
//response.write(doc.outerxml);
Lable1.text=doc.outerxml;

3.使用XmlReader读取XML
该类提供读取xml文件的功能。实际开发中,将XmlReader类与XmlReaderSet类配合使用,启用集合功能,

创建控制台应用程序
XmlReaderSetting xrs=new XmlReaderSetting();//
xrs.IgnoreWhitespace=true;//忽略空白
XmlReader xreader=XmlReader.Creat(@"c:\\XMLFile.xml",xrs);
xreader.MoveToContent();//跳到内容节点,而不是声明节点
while(xreader.read())
{//循环输出
Console.WriteLine(xread.NodeType.ToString()+"值"+xreader.value);//类型值xxx
}
xreader.close();

4 使用XPath检索XML
这和从数据库中检索数据使用SQL类似,它是一种查询语言。XPath全称是XML路径语言。专门用来重DOM树中查询节点和节点集。

xmldocument, navigate,exception,
语法格式:
/ 从根节点开始选择,//选择任意位置相吻合的,“.”选择当前,“..”选择当前节的父节,“@”代表选择当前节的属性。
“[运算符/条件/bool/通配符]”:设置筛选条件
5 使用函数设置检索条件
XPath中使用函数,设置数据检索条件。
XPath中的函数
节点集合 --接受node-set参数,返回参数集,或返回/提供有关节点集中特定节点的信息。

字符串型--对字符串参数执行计算、格式化和处理

bool--计算参数表达式,返回bool结果

数值型--数值结果

= != *


6。查询XML文件的部分内容
控制台
static void quaeryxml()
{
XPathDocument doc=new XPathDocument(@“XMLFile.xml ”);//文件路径

string xpathquery="/books/csharp/bookname[@enname='21day'][contains(text(),21)]";//属性值:21day,包含文本‘21’

//使用
XPathNavigator xpathnav=doc.CreateNavigator();//创建类XPathNavigator的实例
//经过类XPathNavigator的实例编译xpathnav表达式,之后返回XPath表达式对象的实例
XPathExpression xpathexpr=xpathnav.Compile(xpathquery);
XPathNodeIterator xpathiter = xpathnav.Select(xpathexpr)//迭代处理
//循环获取结果
while(xpathiter.MoveNext())//判断是否有值
{
console.writeline(xpathiter.current.value);
}

}

主方法中调用即可


7 修改XML文档
使用XmlDocument类修改、创建XML节点。
DOM : Create()
insert before/after
appen
1)为DOM节点创建属性
创建标签属性,要先获取元素节点,并使用SetAttribute()将新的属性添加到属性集合。
CreatAttribute()方法创建XmlAttribute类型的属性对象,XmlAttribute继承自XmlNode,他提供了属性和方法操作属性信息。

///////////增加节点//////////////////
XmlDocument doc=new XmlDocument();
doc.Load(@“c:\\XMLFile.xml”);
XmlElement book=doc.CreateElment("csharp");//book,创建元素
XmlAttribute xatt=doc.CreatAttribute("level");//创建属性
xatt.Value="3";//属性值是3
book.SetAttributeNode(xatt);//增加属性
doc.DocumentElement.appendChild(book);//增加节点
doc.Save(@“c:\\XMLFile.xml”);//保存//
////////////////////////////////////////////
运行,查看XML文件是否有变化

通过使用新节点替换节点来修改全部节点集
此操作使用InnerXml属性完成,使用RemoveChild方法实现现有节点替换成新节点

////////////修改DOM节点//////////////////////
XmlDocument doc=new XmlDocument();
doc.Load(@“c:\\XMLFile.xml”);
string xpath="/books/csharp[@level='3']";//创建字符串变量,查找
XmlNodeList xmlnodes;//创建NODELIST集合,定义变量
xmlnodes=doc.SelectNodes(xpath);//查找符合条件的元素
foreach(XmlNode xl in xmlnodes)//循环查找匹配值
{
xl.ChildNodes[0].Attributes["level"].Value="node";//修改属性值
//还可以进行查询,移除等操作


}

/////////////////删除DOM节点////////////////
RemoveAll方法移除当前节点的所有子级和属性,RemoveChild移除节点。
属性移除
RemoveAllAttribute,RemoveAttribute,RemoveAttrbuteAt


///////////////////////DataSet对象对XML文件的操作//////////////////////////


DataSet是ASP.NET的主要组件,是从数据源中检索到数据缓存到内存中的一种形式。DataSet不但可以访问数据库,也可以访问XML文件。

ReadXml()方法

///////////////////////////
DataSet ds=new DataSet();
ds.ReadXml("c:\\XMLFile.xml");//读取数据
//////////////////////////////////

XmlDataDocument类,包括XML数据。

 

 

 

 

posted @ 2014-04-19 20:48  雨花梦  阅读(659)  评论(0编辑  收藏  举报