C_程序:如何创建xml文件以及xml文件的增、删、改、查

合集下载

易语言-XML教学

易语言-XML教学

写入XML文件
注意事项
使用易语言的文件操作函数,打 开XML文件并读取其中的内容。
使用易语言的文件操作函数,创 建或打开一个XML文件,并将数 据写入其中。
在读取和写入XML文件时,需要 注意文件的编码格式和数据的格 式化。
案例二:易语言中XML的解析和生成
解析XML数据
使用易语言的XML解析库, 将XML字符串或文件解析成 易语言的数据结构。
03
促进跨学科融合
易语言-XML教学可以与其他学科如 数学、物理等进行融合,通过编程实 现各种计算和分析,增强学生对其他 学科的理解和应用能力。
易语言-XML教学的发展断发展, 易语言-XML教学将逐渐普 及,成为更多学校和学生的 选择。
未来易语言-XML教学将更 加专业化,针对不同领域和 行业的需求,开发更加专业 化的教学内容和工具。
生成XML数据
使用易语言的XML库,将易 语言的数据结构转换为XML 格式的字符串或文件。
注意事项
在解析和生成XML数据时, 需要注意数据的完整性和准 确性。
案例三:易语言中XML的数据绑定和显示
数据绑定
将易语言中的数据对象与XML数据进行绑定,实现数 据的同步更新。
数据显示
使用易语言的界面库,将绑定的XML数据显示在界面 上。
详细描述
XML元素是由开始标签、结束标签和标签之间的内容组成。开始标签和结束标签分别表示元素的开始 和结束,标签之间的内容是元素的具体内容。此外,XML还支持属性和文本内容,属性提供关于元素 的附加信息,文本内容则是元素的具体数据。
XML的应用场景和优势
总结词
XML广泛应用于数据交换、存储和呈现等领 域。
易语言的编程基础

利用CMarkup生成XML文件

利用CMarkup生成XML文件

创建一个XML文档对于创建一个XML文档,需要实例化一个CMarkup对象,并调用AddElem创建根元素。

.在这个位置,如果你调用AddElem("ORDER") ,你的文档会简单的装一个空ORDER元素<ORDER/>. 然后调用AddChildElem 在根元素的下面创建元素(例如:“进入”根元素内部,层次表示).下面的示例代码创建一个XML文档并返回它(的内容)到一个字符串中。

CMarkup xml;xml.AddElem( "ORDER" );xml.AddChildElem( "ITEM" );xml.IntoElem();xml.AddChildElem( "SN", "132487A-J" );xml.AddChildElem( "NAME", "crank casing" );xml.AddChildElem( "QTY", "1" );CString csXML = xml.GetDoc();这些代码产生了下面的XML,这个根结点是ORDER元素;注意它的开始标签<ORDER> 在开头,结束标签</ORDER>在结尾。

当一个元素是在一个父下面(深入或被包含),这个父元素的开始标签要在它之前,结束标签要在它之后。

ORDER元素包含一个ITEM元素,而ITEM元素包含了三个字子元素:SN、NAME和QTY;<ORDER><ITEM><SN>132487A-J</SN><NAME>crank casing</NAME><QTY>1</QTY></ITEM></ORDER>如例子中所显示的,你也能够在一个子元素下创建新元素,这需要调用IntoElem 移动你的当前主位置到当前子元素位置,然后你就可以在这下面增加一个子元素了。

C#生成XML的三种途径

C#生成XML的三种途径

C#⽣成XML的三种途径为了全⾯,这⾥都将XML保存到⽂件中,有三种⽣成XML的⽅式:1。

我认为是最原始,最基本的⼀种:利⽤XmlDocument向⼀个XML⽂件⾥写节点,然后再利⽤XmlDocument保存⽂件。

⾸先加载要写⼊的XML⽂件,但是如果没有的,就要新建,在新建的过程中,要有写⼊的代码;XmlDocument doc = new XmlDocument();try{doc.Load("new.xml");}catch{XmlTextWriter xtw = new XmlTextWriter("new.xml", Encoding.UTF8); 新建XML⽂件xtw.WriteStartDocument();xtw.WriteStartElement("gnode"); gnode根节点xtw.WriteStartElement("myxm1"); gnode根节点下的元素myxmlsxtw.WriteEndElement();xtw.WriteEndElement();xtw.WriteEndDocument();xtw.Close();doc.Load("new.xml");}XmlNode xn = doc.DocumentElement; 找到根节点XmlElement xe = doc.CreateElement("myxml2"); 在根节点下创建元素,如果是属性,则⽤XmlAttribute;xe.InnerText = "hahaha"; 给⼦节点写⼊⽂本节点(值)xn.AppendChild(xe); 根节点将其纳⼊doc.Save("new2.xml"); 利⽤XmlDocument保存⽂件注意点:在新建根节点的时候,WriteStartElement,只能嵌套,也就是只能有⼀个根节点。

单表操作的增删改查开发流程

单表操作的增删改查开发流程

1,建立单表维护模块需要维护的实体详见增删改查模块的表单配置开发模式中的建实体2,填写配置文件1).配置system-PortletEntities.xml文件,建立栏目,拷贝一段已有的配置代码<portletEntity><name>pygl.szpkxnxqsj</name><portlet-name>pygl.szpkxnxqsj</portlet-name><title>设置排课学年学期时间</title><description>设置排课学年学期时间</description><keywords>设置排课学年学期时间</keywords></portletEntity>修改其中的name、portlet-name、title、description、keywords五个属性。

填写你需要的开发的模块的信息2).配置portlet.xml文件,实现栏目,拷贝一段已有的配置代码,如:<portlet><portlet-name>pygl.szpkxnxqsj</portlet-name><display-name>设置排课学年学期时间</display-name><portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class><init-param><name>contextConfigLocation</name><value>/WEB-INF/portlet-config/pkcssz/pygl.szpkxnxqsj.xml</value></init-param><supports><mime-type>text/html</mime-type><portlet-mode>view</portlet-mode></supports><portlet-info><title>设置排课学年学期时间</title></portlet-info></portlet>修改其中<portlet-name>、<title>、<display-name>分别和system-PortletEntities.xml中配置的<portlet-name>、<title>、<description>严格一致,不然之后搜索栏目,配置成功后栏目中找不到相应的内容。

使用 Microsoft Access 导入和导出 XML 数据

使用 Microsoft Access 导入和导出 XML 数据

使用 Microsoft Access 导入和导出 XML 数据虽然Office Space专栏已经运作几个月了,但至少还有两个主题未涉及到:Microsoft Access 和 XML。

这没有什么特别的原因;我们只是未找到合适的时机。

在撰写这一周的专栏时我们突现灵感:我们来个一箭双雕。

在那些动物权益保护者们最终停止围攻我们办公室后,我们想到一个更好的主意:让我们不杀任何鸟。

相反,我们来撰写与 Access 和 XML 都相关的专栏。

我们也确实这么做了。

今天我们将探讨在 Microsoft Access 中导入和导出 XML 数据。

当然,这一下就产生了一些问题:毕竟,如果已决定使用 Access,为什么还要关心 XML 数据?反之,如果已决定使用 XML,为什么还要为 Access 费心呢?难道挑一种格式,然后固定不变不是更好吗?老实说,我们对此类问题没有确切的答案。

但我们确实知道,我们生活在 XML 世界中:许多应用程序(尤其是基于 Web 的应用程序)依赖于 XML 数据。

就这一点来说,XML 是难于忽略的。

另一方面,Access 在处理和分析数据方面有一些非常不错的功能;单就图形查询生成器就使它成为一个非常有价值的应用程序。

这真是进退维谷:XML 无处不在,但缺乏分析 XML 文件中所存储数据的好工具。

(这一点正在改变,但现在……)相比之下,Access 具有极佳的数据分析工具,但 XML 却正在成为数据存储的事实上的标准。

可怜的脚本编写者将如何应对呢?请看我们的一个建议:为什么不将 XML 和 Access 一起使用?您有存储在 XML 文件中要进行处理的数据吗?那么就请将这些数据导入到 Access 数据库中。

您有存在于 Access 数据库,却需要转换成 XML 格式的数据吗?那么就将这些数据导出到 XML 文件。

这当然比光拿自己的蛋糕吃掉好多了;因为这就像您不但有自己的蛋糕而且还得到了别人的蛋糕,然后将这两份都吃掉。

利用libxml2解析xml文档

利用libxml2解析xml文档

利⽤libxml2解析xml⽂档C程序⾥可以利⽤libxml2库去解析xml⽂档。

利⽤libxml2可以很轻松的解析,⽣成xml⽂件。

这⾥演⽰⼀个⼩例⼦,包含了遍历节点,获取节点属性与值,以及获取CDATA⾥⾯的内容。

测验的xml⽂件:<?xml version="1.0" encoding="utf-8"?><root name="test"><content><pro id="moonApple"><![CDATA[<say>i still have lots to work on</say>]]></pro><details><detail name="dancing">like it</detail><detail name="singing">poor , just listen</detail><detail name="laugh"/><detail name="eating"><![CDATA[<food>candy</food>]]></detail></details></content></root>test.c⽂件:#include<stdio.h>#include<string.h>#include<libxml/parser.h>#include<libxml/tree.h>int parse_xml_file(char *buf,int len){xmlDocPtr doc;xmlNodePtr root,node,detail;xmlChar *name,*value;doc=xmlParseMemory(buf,len); //parse xml in memoryif(doc==NULL){printf("doc == null\n");return -1;}root=xmlDocGetRootElement(doc);for(node=root->children;node;node=node->next){if(xmlStrcasecmp(node->name,BAD_CAST"content")==0)break;}if(node==NULL){printf("no node = content\n");return -1;}for(node=node->children;node;node=node->next){if(xmlStrcasecmp(node->name,BAD_CAST"pro")==0){ //get pro nodename=xmlGetProp(node,BAD_CAST"id");value=xmlNodeGetContent(node);printf("this is %s:\n%s\n",(char*)name,(char*)value); //get value, CDATA is not parse and don't take into value xmlFree(name);xmlFree(value);}else if(xmlStrcasecmp(node->name,BAD_CAST"details")==0){ //get details nodefor(detail=node->children;detail;detail=detail->next){ //traverse detail nodeif(xmlStrcasecmp(detail->name,BAD_CAST"detail")==0){name=xmlGetProp(detail,BAD_CAST"name");value=xmlNodeGetContent(detail);if(strlen((char*)value)!=0){printf("%s : %s\n",(char*)name,(char*)value);}else{printf("%s has no value\n",(char*)name);}xmlFree(name);xmlFree(value);}}}}xmlFreeDoc(doc);return 0;}int main(void){char *content;unsigned long filesize;FILE *file;if((file=fopen("testxml","r"))==NULL){perror("openf file error");}fseek(file,0,SEEK_END);filesize=ftell(file);rewind(file);content=(char *)malloc(filesize+1);memset(content,0,filesize+1);fread(content,1,filesize,file);fclose(file);printf("content:\n%s\n",content);if(parse_xml_file(content,filesize)<0){perror("parse xml failed");}return 0;}输出结果:this is moonApple:<say>i still have lots to work on</say>dancing : like itsinging : poor , just listenlaugh has no valueeating : <food>candy</food>这⾥主要关注XML⽂件⾥⾯的CDATA⾥⾯的内容~更具体的使⽤⽅法和其他细节可以访问官⽹和上⾯的连接~。

创建xml的实验步骤

创建xml的实验步骤

创建xml的实验步骤XML(可扩展标记语言)是一种用于存储和传输数据的通用标记语言。

它被广泛用于网页设计、数据交换和文档存储。

在本实验中,我们将学习如何创建XML文档。

以下是创建XML文档的实验步骤:1. 了解XML基础在开始创建XML文档之前,了解XML的基础知识是很重要的。

XML是一种标记语言,它使用嵌套的元素来表示数据。

每个元素都有一个开始标签和结束标签,以及一个可选的属性和文本内容。

例如,以下是一个简单的XML文档示例:```<book><title>Book Title</title><author>Author Name</author><price>10.99</price></book>```2. 创建一个新的文本编辑器或IDE为了创建XML文档,你需要一个文本编辑器或集成开发环境(IDE)。

有许多免费和付费的选项可供选择,如Notepad++、Sublime Text、Visual Studio Code 等。

选择一个适合你需求的编辑器,并安装任何必要的插件或扩展。

3. 创建一个新的XML文件在文本编辑器中创建一个新的文本文件。

将其命名为“example.xml”,并保存为XML格式。

这将在文件顶部创建一个XML声明:```<?xml version="1.0" encoding="UTF-8"?>```4. 编写XML元素和属性现在你可以开始编写XML元素和属性。

以下是一个简单的示例:```xml<?xml version="1.0" encoding="UTF-8"?><catalog><book><title>Book Title 1</title><author>Author 1</author><price>10.99</price></book><book><title>Book Title 2</title><author>Author 2</author><price>12.99</price></book></catalog>```5. 验证XML文档的语法在保存XML文件后,可以使用在线验证工具检查XML文档的语法是否正确。

《Android移动应用基础教程》中国铁道出版社课后习题 附答案

《Android移动应用基础教程》中国铁道出版社课后习题 附答案

A n d r o i d移动应用基础教程习题答案姓名:班级:联系方式:第1章Android基础入门一、填空题1、Android是Google公司基于Linux平台开发的手机及平板电脑的操作系统2、Android系统采用分层结构,由高到低依次为应用程序层、应用程序框架层、核心类库、Linux内核。

3、ADB的常见指令中,用于开启ADB服务的是adb start-server。

4、在Android程序中,src目录用于放置程序的java代码文件。

5、Android程序开发完成后,如果要发布到互联网上供别人使用,需要将程序打包成.apk文件。

二、判断题1、Android实际上就是一个手机。

×2、WCDMA是中国自己独自定制的3G标准,中国移动使用的就是这种标准。

×3、android第一个版本Android 是2008年9月发布的。

√4、gen目录是自动生成的,主要有一个文件,该文件可手动修改。

×5、文件是整个程序的配置文件。

√三、选择题1、随着智能手机的发展,移动通信技术也在不断升级,目前应用最广泛的是(C)A、1GB、2GC、3GD、4G2、ADT Bundle中包含了三个重要组成部分,分别是(ABC)A、EclipseB、SDKC、SDK Manager,exeD、ADB3、应用程序层是一个核心应用程序的集合,主要包括(B)A、活动管理器B、短信程序C、音频驱动D、Dalivik虚拟机4、ADB的常见指令中“列出所有设备”的指令是(C)A、adb uninstallB、adb installC、adb deviceD、adb emulator -avd5、创建程序时,填写的Application Name表示(A)A、应用名称B、项目名称C、项目的包名D、类的名字四、简答题1、简要说明Android体系结构中每个层的功能。

Android体系结构总共包含四层,分别是:●应用程序层:设备上安装的软件应用都属于这一层●应用程序框架层:包含应用API●核心类库:包含系统库和运行环境,系统库包含了底层C代码;运行环境包含了Java的核心库和Dalvik虚拟机●Linux内核:提供Android的底层驱动。

C#操作xml:增,删,改,查

C#操作xml:增,删,改,查

c#操作xml/e/404232246.htm同样是增,删,改,查四种操作。

现在我们就详细介绍一下增和删两种操作。

看下面的一个xml示例:<?xml version="1.0" encoding="utf-8"?><phonebook><member id="6"><name>456</name><qq>5465</qq></member><member id="5"><name>jjjjj</name><qq>3456789</qq></member></phonebook>xml的每个节点分为节点名称,节点值和属性三类,如:member节点:id为其一个属性,menber为其节点名称。

再如:name节点456为其节点值。

如果我们需要增加一个节点可以调用一下几个方法:/// <summary>/// 在根节点下添加父节点/// </summary>public static void AddParentNode(string xmlPath,string parentNode){XmlDocument xdoc = new XmlDocument();xdoc.Load(xmlPath);// 创建一个新的menber节点并将它添加到根节点下XmlElement Node = xdoc.CreateElement(parentNode);xdoc.DocumentElement.PrependChild(Node);xdoc.Save(xmlPath);}#region 插入一节点,带一属性/// <summary>/// 插入一节点,带一属性/// </summary>/// <param name="xmlPath">Xml文档路径</param>/// <param name="MainNode">当前节点路径</param>/// <param name="Element">新节点</param>/// <param name="Attrib">属性名称</param>/// <param name="AttribContent">属性值</param>/// <param name="Content">新节点值</param>public static void XmlInsertElement(string xmlPath, string MainNode, string Element,string Attrib, string AttribContent, string Content){XmlDocument objXmlDoc = new XmlDocument();objXmlDoc.Load(xmlPath);XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);XmlElement objElement = objXmlDoc.CreateElement(Element);objElement.SetAttribute(Attrib, AttribContent);objElement.InnerText = Content;objNode.AppendChild(objElement);objXmlDoc.Save(xmlPath);}#endregion#region 插入一节点不带属性public static void XmlInsertElement(string xmlPath, string MainNode, string Element, string Content){XmlDocument objXmlDoc = new XmlDocument();objXmlDoc.Load(xmlPath);XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);XmlElement objElement = objXmlDoc.CreateElement(Element);objElement.InnerText = Content;objNode.AppendChild(objElement);objXmlDoc.Save(xmlPath);}#endregion#region 向一个节点添加属性/// <summary>/// 向一个节点添加属性/// </summary>/// <param name="xmlPath">xml文件路径</param>/// <param name="NodePath">节点路径</param>/// <param name="NodeAttribute1">要添加的节点属性的名称</param>/// <param name="NodeAttributeText">要添加属性的值</param>public static void AddAttribute(string xmlPath, string NodePath, string NodeAttribute1, string NodeAttributeText){XmlDocument objXmlDoc = new XmlDocument();objXmlDoc.Load(xmlPath);XmlAttribute nodeAttribute = objXmlDoc.CreateAttribute(NodeAttribute1);XmlNode nodePath = objXmlDoc.SelectSingleNode(NodePath);nodePath.Attributes.Append(nodeAttribute);XmlElement xe = (XmlElement)nodePath;xe.SetAttribute(NodeAttribute1, NodeAttributeText);objXmlDoc.Save(xmlPath);}#endregion如想要加入一个member的父节点,属性id值为7你可以这样来做://取得xml文件的路径string xmlPath = Server.MapPath("~/test.xml");string parentNode="member";//在根节点下添加父节点memberXmlHelper.AddParentNode(xmlPath, parentNode);//刚添加的member节点添加一XmlHelper.AddAttribute(xmlPath, "phonebook/member", "id", "7");则xml文件就会变成这样<?xml version="1.0" encoding="utf-8"?><phonebook><member id="6"><name>456</name><qq>5465</qq></member><member id="5"><name>jjjjj</name><qq>3456789</qq></member><member id="7"></member></phonebook>向新添加的节点member(id=7)的节点下加入节点名称为qq,值为123456的新节点,你可以这样做XmlHelper.XmlInsertElement(xmlPath, "//member[@id="7"]", "qq", "123456");则输出的xml为:<?xml version="1.0" encoding="utf-8"?><phonebook><member id="6"><name>456</name><qq>5465</qq></member><member id="5"><name>jjjjj</name><qq>3456789</qq></member><member id="7"><qq>123456</qq></member></phonebook>增加节点我们就介绍到这里,只要你基本掌握了xpath语法,融会贯通,就可以利用上面几个公用方法对xml文件进行增加操作下面我们介绍一下删除操作,删除共有两种,一是删除某一节点,一种是删除某一节点的属性。

c#操作xml文件

c#操作xml文件

c#操作xml⽂件using System.Xml;//初始化⼀个xml实例XmlDocument xml=new XmlDocument();//导⼊指定xml⽂件xml.Load(path);xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));//指定⼀个节点XmlNode root=xml.SelectSingleNode("/root");//获取节点下所有直接⼦节点XmlNodeList childlist=root.ChildNodes;//判断该节点下是否有⼦节点root.HasChildNodes;//获取同名同级节点集合XmlNodeList nodelist=xml.SelectNodes("/Root/News");//⽣成⼀个新节点XmlElement node=xml.CreateElement("News");//将节点加到指定节点下,作为其⼦节点root.AppendChild(node);//将节点加到指定节点下某个⼦节点前root.InsertBefore(node,root.ChildeNodes[i]);//为指定节点的新建属性并赋值node.SetAttribute("id","11111");//为指定节点添加⼦节点root.AppendChild(node);//获取指定节点的指定属性值string id=node.Attributes["id"].Value;//获取指定节点中的⽂本string content=node.InnerText;//保存XML⽂件string path=Server.MapPath("~/file/bookstore.xml");xml.Save(path);//or use :xml.Save(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));⼆、具体实例在C#.net中如何操作XML需要添加的命名空间:using System.Xml;定义⼏个公共对象:XmlDocument xmldoc ;XmlNode xmlnode ;XmlElement xmlelem ;1,创建到服务器同名⽬录下的xml⽂件:⽅法⼀:xmldoc = new XmlDocument ( ) ;//加⼊XML的声明段落,<?xml version="1.0" encoding="gb2312"?>XmlDeclaration xmldecl;xmldecl = xmldoc.CreateXmlDeclaration("1.0","gb2312",null);xmldoc.AppendChild ( xmldecl);//加⼊⼀个根元素xmlelem = xmldoc.CreateElement ( "", "Employees", "") ;xmldoc.AppendChild ( xmlelem ) ;//加⼊另外⼀个元素for(int i=1;i<3;i++){XmlNode root=xmldoc.SelectSingleNode("Employees");//查找<Employees> XmlElement xe1=xmldoc.CreateElement("Node");//创建⼀个<Node>节点xe1.SetAttribute("genre","李赞红");//设置该节点genre属性xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性XmlElement xesub1=xmldoc.CreateElement("title");xesub1.InnerText="CS从⼊门到精通";//设置⽂本节点xe1.AppendChild(xesub1);//添加到<Node>节点中XmlElement xesub2=xmldoc.CreateElement("author");xesub2.InnerText="候捷";xe1.AppendChild(xesub2);XmlElement xesub3=xmldoc.CreateElement("price");xesub3.InnerText="58.3";xe1.AppendChild(xesub3);root.AppendChild(xe1);//添加到<Employees>节点中}//保存创建好的XML⽂档xmldoc.Save ( Server.MapPath("data.xml") ) ;//////////////////////////////////////////////////////////////////////////////////////结果:在同名⽬录下⽣成了名为data.xml的⽂件,内容如下,<?xml version="1.0"encoding="gb2312"?><Employees><Node genre="李赞红"ISBN="2-3631-4"><title>CS从⼊门到精通</title><author>候捷</author><price>58.3</price></Node><Node genre="李赞红"ISBN="2-3631-4"><title>CS从⼊门到精通</title><author>候捷</author><price>58.3</price></Node></Employees>⽅法⼆:XmlTextWriter xmlWriter;string strFilename = Server.MapPath("data1.xml") ;xmlWriter = new XmlTextWriter(strFilename,Encoding.Default);//创建⼀个xml⽂档 xmlWriter.Formatting = Formatting.Indented;xmlWriter.WriteStartDocument();xmlWriter.WriteStartElement("Employees");xmlWriter.WriteStartElement("Node");xmlWriter.WriteAttributeString("genre","李赞红");xmlWriter.WriteAttributeString("ISBN","2-3631-4");xmlWriter.WriteStartElement("title");xmlWriter.WriteString("CS从⼊门到精通");xmlWriter.WriteEndElement();xmlWriter.WriteStartElement("author");xmlWriter.WriteString("候捷");xmlWriter.WriteEndElement();xmlWriter.WriteStartElement("price");xmlWriter.WriteString("58.3");xmlWriter.WriteEndElement();xmlWriter.WriteEndElement();xmlWriter.Close();//////////////////////////////////////////////////////////////////////////////////////结果:<?xml version="1.0"encoding="gb2312"?><Employees><Node genre="李赞红"ISBN="2-3631-4"><title>CS从⼊门到精通</title><author>候捷</author><price>58.3</price></Node></Employees>2,添加⼀个结点:XmlDocument xmlDoc=new XmlDocument();xmlDoc.Load(Server.MapPath("data.xml"));XmlNode root=xmlDoc.SelectSingleNode("Employees");//查找<Employees>XmlElement xe1=xmlDoc.CreateElement("Node");//创建⼀个<Node>节点xe1.SetAttribute("genre","张三");//设置该节点genre属性xe1.SetAttribute("ISBN","1-1111-1");//设置该节点ISBN属性XmlElement xesub1=xmlDoc.CreateElement("title");xesub1.InnerText="C#⼊门帮助";//设置⽂本节点xe1.AppendChild(xesub1);//添加到<Node>节点中XmlElement xesub2=xmlDoc.CreateElement("author");xesub2.InnerText="⾼⼿";xe1.AppendChild(xesub2);XmlElement xesub3=xmlDoc.CreateElement("price");xesub3.InnerText="158.3";xe1.AppendChild(xesub3);root.AppendChild(xe1);//添加到<Employees>节点中xmlDoc.Save ( Server.MapPath("data.xml") );//////////////////////////////////////////////////////////////////////////////////////结果:在xml原有的内容⾥添加了⼀个结点,内容如下,<?xml version="1.0"encoding="gb2312"?><Employees><Node genre="李赞红"ISBN="2-3631-4"><title>CS从⼊门到精通</title><author>候捷</author><price>58.3</price></Node><Node genre="李赞红"ISBN="2-3631-4"><title>CS从⼊门到精通</title><author>候捷</author><price>58.3</price></Node><Node genre="张三"ISBN="1-1111-1"><title>C#⼊门帮助</title><author>⾼⼿</author><price>158.3</price></Node></Employees>3,修改结点的值(属性和⼦结点):XmlDocument xmlDoc=new XmlDocument();xmlDoc.Load( Server.MapPath("data.xml") );XmlNodeList nodeList=xmlDoc.SelectSingleNode("Employees").ChildNodes;//获取Employees节点的所有⼦节点foreach(XmlNode xn in nodeList)//遍历所有⼦节点{XmlElement xe=(XmlElement)xn;//将⼦节点类型转换为XmlElement类型if(xe.GetAttribute("genre")=="张三")//如果genre属性值为“张三”{xe.SetAttribute("genre","update张三");//则修改该属性为“update张三”XmlNodeList nls=xe.ChildNodes;//继续获取xe⼦节点的所有⼦节点foreach(XmlNode xn1 in nls)//遍历{XmlElement xe2=(XmlElement)xn1;//转换类型if(=="author")//如果找到{xe2.InnerText="亚胜";//则修改}}}}xmlDoc.Save( Server.MapPath("data.xml") );//保存。

C中对XML文件的操作

C中对XML文件的操作

Xml作为一‎个非常重要的‎纯文本格式已‎经进入了编程‎的很多领域,作为一个面向‎应用层面的c‎#也一样在很多‎领域离不开X‎m l。

但是,c#在很多方面对‎X ml做了写‎封装,以至于很多操‎作Xml的代‎码,都不需要手动‎去写。

例如,c#写WebSe‎r vice这‎种需要大量操‎作Xml的服‎务,除了极其个别‎的情况下,基本看不到任‎何操作Xml‎的代码。

这是c#的一个优势,但是,最近发现正是‎这样一些c#的优势,导致了新一代‎c#程序员的能力‎退化。

因为90%的情况下,不需要手动操‎作Xml,所以,年轻的c#程序员也觉得‎没必要为了这‎10%的情况,而去学如何手‎工读写Xml‎。

真不知道,ms 提供了这‎么简便的工具‎,是ms做的善‎事还是作的孽‎。

好吧,废话就不说了‎,转入主题。

1.如何用Xml‎Dom的方式‎读取XmlXml Dom方式是‎最原始的一种‎操作Xml的‎途径,从.net Framew‎o rk 1.0开始就开始‎支持Dom方‎式。

1.1如何以Do‎m方式加载X‎m l要读取Xml‎首先要加载X‎m l,加载的方式有‎两种,一种是从流或‎类似的Rea‎d er加载,例如:当然还可以从‎字符串加载:1.1读取无na‎m espac‎e的XmlXml已经准‎备好了,下面就开始读‎取这个Xml‎。

现在希望读取‎d ata节下‎面的所有it‎e m中的te‎x t,那么就可以:看看运行结果‎:但是,这样写的问题‎有很多,例如在dat‎a节点中有非‎i tem的节‎点,这样访问,也就被无差别‎的把非ite‎m项也写出来‎了。

例如把如果数‎据改成这样:这样,在data节‎里面,除了4个it‎e m,还有一个ot‎h er,这个othe‎r是不需要的‎,必须被排除掉‎,如果直接用第‎一中Chil‎d Nodes‎去访问的话,会得到这样的‎结果:显然“!@#”也被选择出来‎了,这可不是我们‎所期望的,所以,改用XPat‎h的方式访问‎:其运行结果为‎:很好的oth‎e r项排除在‎需要的节点外‎,这才是我们真‎正想要的结果‎:)1.2读取有na‎m espac‎e的Xml和c#一样Xml也‎有names‎p ace,并且name‎s pace在‎X ml中的作‎用巨大,也许你并未感‎受到name‎s pace的‎作用,但是,你可能已经不‎得不面对那些‎有names‎p ace的X‎m l了。

JSP XML 动态创建XML文档

JSP  XML  动态创建XML文档

JSP XML 动态创建XML文档DOM解析器通过在内存中建立和XML结构相对应的树状结构数据,使得应用程序可以方便地获得XML文件中的数据。

JAXP也提供了使用内存中的树状结构数据建立一个XML文件的API,即使用解析器得到的Document对象建立一个新的X ML文件。

1.动态生成XML文档步骤DOM生成XML文档的基本过程是,解析器的parse方法将整个被解析的XML 文件封装成一个Document节点返回,这时可以对Document节点进行修改,然后使用Transformer对象将一个Document节点变换为一个XML文件。

具体步骤如下所示:(1)生成Document节点。

解析器不调用parse方法,也可以得到一个Docum(2)应用程序修改Document节点。

编写程序代码修改Document节点,可以执行添加、删除等节点。

其常用方法如表7-8所示:表7-8 修改Document节点常用方法一个XML文件。

使用Transformer对象将一个Document节点变换为一个XML文件需要经过如下过程:象封装到一个StreamResult对象中:现在创建一个案例,演示使用DOM生成XML文件。

打开记事本,输入下列将上述代码保存,名称为XMLExample6.jsp。

将该文件保存到C:\Tomcat 6.0\ webapps\JSPExample目录下。

打开IE浏览器,在地址栏中输入http://localhost:8080 /JSPExample/XMLExample6.jsp,单击【转到】,会显示如图7-16所示窗口。

单击图7-16中的【显示创建的XML文档】,会显示如图7-17所示窗口:图7-16 创建XML文档图7-17 显示XML文档在本案例代码中,比较重要的位置都标上了注释,这里就不再介绍。

document 节点创建完成后,首先需要添加XML文档的声明,其代码为“document.setXmlVe rsion("1.0")”,下面就可以添加要生成的XML文档的根节点,其代码为“document. appendChild(root);”。

怎样在C#里对xml文件进行修改,新增,删除,插入操作

怎样在C#里对xml文件进行修改,新增,删除,插入操作

怎样在C#里对xml文件进行修改,新增,删除,插入操作?已知有一个XML文件(bookstore.xml)如下:<?xml vers ion="1.0" encoding="gb2312"?><bookstore><book genre="fantasy" ISBN="2-3631-4"><title>Oberon's Legacy</title><author>Corets, Eva</author><price>5.95</price></book></bookstore>1、往<bookstore>节点中插入一个<book>节点:XmlDocument xmlDoc=new XmlDocument();xmlDoc.Load("bookstore.xml");XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore> XmlElement xe1=xmlDoc.CreateElement("book");//创建一个<book>节点xe1.SetAttribute("genre","李赞红");//设置该节点genre属性xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性XmlElement xesub1=xmlDoc.CreateElement("title");xesub1.InnerText="CS从入门到精通";//设置文本节点xe1.AppendChild(xesub1);//添加到<book>节点中XmlElement xesub2=xmlDoc.CreateElement("author");xesub2.InnerText="候捷";xe1.AppendChild(xesub2);XmlElement xesub3=xmlDoc.CreateElement("price");xesub3.InnerText="58.3";xe1.AppendChild(xesub3);root.AppendChild(xe1);//添加到<bookstore>节点中xmlDoc.Save("bookstore.xml");//================结果为:<?xml vers ion="1.0" encoding="gb2312"?><bookstore><book genre="fantasy" ISBN="2-3631-4"><title>Oberon's Legacy</title><author>Corets, Eva</author><price>5.95</price></book><book genre="李赞红" ISBN="2-3631-4"><title>CS从入门到精通</title><author>候捷</author><price>58.3</price></book></bookstore>2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。

xml文件的增删改查

xml文件的增删改查

package com.accp.xml.dom4j;import java.io.FileInputStream;import java.io.FileNotFoundException; import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.OutputStreamWriter; import java.io.Writer;import java.util.Iterator;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException; import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;import org.dom4j.tree.DefaultDocument; import org.xml.sax.EntityResolver;import org.xml.sax.InputSource;import org.xml.sax.SAXException;/*** xml的增删改查示例** @author**/public class XMLCrud {/*** 默认的构造方法** @throws DocumentException* @throws IOException* @throws SAXException*/public XMLCrud() {// Document doc = loadXML("class.xml"); //// // 载入XML文档// // System.out.println(doc.asXML());//// // 打印XML文档// printDoc(doc);//// // 把XML文档存入硬盘// storeDoc(doc, "new.xml");// 新建xml文档对象// Document doc1 = this.createDoc();////////////// //存入note.xml// storeDoc(doc1, "note.xml");// System.out.println(getStudentCount(doc));/** // 校验dtd XML文档doc = valideDoc("class.xml");** printDoc(doc); // 校验Schema文档doc =* validateDocBySxd("classSchema.xml"); printDoc(doc);** String url = getClass().getResource("/xml/dom4j/wkjava/class.xsd") * .toString(); // 校验Schema文档(俩参数)doc =* validateDocBySxd("classSchema.xml", url); printDoc(doc); //* 创建Schema文档doc = createDoc(); storeDoc(doc, "root.xml"); doc = * validateDocBySxd("classSchema.xml"); // 在文档中修改原属updateZip(doc, * "102202"); printDoc(doc);** doc = validateDocBySxd("classSchema.xml"); // 打印文档中所有学生名字* printNames(doc);***/}public static void main(String[] args) {XMLCrud xml = new XMLCrud();xml.genXMLFile();}/*** 装载xml文件,解析为dom文档对象** @param xmlfile* @return* @throws FileNotFoundException* @throws DocumentException*/public Document loadXML(String xmlfile) throws FileNotFoundException, DocumentException {// 获得SAX的xml解析器SAXReader reader = new SAXReader();// 解析xml文件获得文档对象引用Document doc = reader.read(new FileInputStream(xmlfile));return doc;}/*** 打印doc文档** @param doc* @throws IOException*/public void printDoc(Document doc) throws IOException {// 创建字符输出流(输出目标为控制台System.out)Writer out = new OutputStreamWriter(System.out, "utf-8");// 创建输出格式对象OutputFormat format = OutputFormat.createPrettyPrint();// 由字符输出流对象和输出格式对象为参数创建xml输出对象XMLWriter writer = new XMLWriter(out, format);// 调用输出方法(如果输出目标为文件,则相当于保存xml文档)writer.write(doc);// 刷新输出流,清空缓存out.flush();}/*** 保存xml文档对象为xml文件** @param doc* @param filename* 指定的文件路径* @throws IOException*/public void storeDoc(Document doc, String filename) throws IOException {// 获取输出流(输出到文件中,文件内码编码为utf-8)Writer out = new OutputStreamWriter(new FileOutputStream(filename), "utf-8");// 获取一个输出格式对象,用来设置生成的xml的格式OutputFormat format = OutputFormat.createPrettyPrint();// 设置xml文件缩进的字符,(示例为缩进8个空格)format.setIndent(" ");// 通过输出流和输出格式对象来生成xml的输出对象XMLWriter writer = new XMLWriter(out, format);// 保存xml文档到对应文件writer.write(doc);// 关闭输出流out.close();}public Document validateDocBySxd(String xmlfile) throws SAXException, DocumentException, IOException {SAXReader reader = new SAXReader(true);reader.setFeature("/xml/features/validation/schema", true);Document doc = reader.read(new FileInputStream(xmlfile));return doc;}public Document valideDoc(String xmlfile) throws DocumentException,IOException {EntityResolver resolver = new EntityResolver() {public InputSource resolveEntity(String publicId, String systemId)throws SAXException, IOException {if (publicId.equals("//class from weiking")) {InputStream in = new FileInputStream("class.dtd");return new InputSource(in);}return null;}};SAXReader reader = new SAXReader(true);reader.setEntityResolver(resolver);Document doc = reader.read(new FileInputStream(xmlfile));return doc;}public Document validateDocBySxd(String xmlfile, String SchemaUrl)throws SAXException, FileNotFoundException, DocumentException {SAXReader reader = new SAXReader(true);reader.setFeature("/sax/features/validation", true);reader.setFeature("/xml/features/validation/schema",true);reader.setFeature("/xml/features/validation/schema-full-checking",true);reader.setProperty("/xml/properties/schema/external-noNamespaceSchem aLocation",SchemaUrl);Document doc = reader.read(new FileInputStream(xmlfile));return doc;}/*** 创建xml文档对象存在于内存中,需要调用保存方法才能持久化该对象** @return xml文档树对象*/public Document createDoc() {// 创建文档对象有两种方式// 1-创建一个缺省的文档对象DefaultDocument doc = new DefaultDocument();// 2-利用DocumentHelper.createDocument()创建一个文档对象// Document doc = DocumentHelper.createDocument();// 添加一个元素作为根节点Element root = doc.addElement("root");// 在根节点上添加子节点及属性还有文本节点Element author2 = root.addElement("author").addAttribute("name", "Toby").addAttribute("location","Germany").addText("Tobias Rademacher");Element author1 = root.addElement("author").addAttribute("name","James").addAttribute("location", "UK").addText("James Strachan");return doc;}/*** 更新文档中某个节点的值修改的是内存的dom树,所以需要重新调用保存doc ** @param doc* @param zip*/public void updateZip(Document doc, String zip) {// 对应节点的xpath表达式String xpath = "/Class/Teacher/zip";// 根据xpath表达式获取对应节点元素Element e = (Element) doc.selectSingleNode(xpath);// 修改该节点的值e.setText(zip);}/*** 输出dom树** @param doc*/public void printNames(Document doc) {// 定义xpath表达式字符串String xpath = "/Class/Students/Student/name";//List list = doc.selectNodes(xpath);for (Iterator i = list.iterator(); i.hasNext();) {Element e = (Element) i.next();System.out.println(e.element("last").getText() + e.valueOf("first"));}}/*** 获取对应节点的数量* @param doc* @return*/public int getStudentCount(Document doc) {int count = 0;// XPath 使用路径表达式来选取XML 文档中的节点或者节点集。

C语言处理xml文件的库

C语言处理xml文件的库

C语⾔处理xml⽂件的库读取和设置xml配置⽂件是最常⽤的操作,试⽤了⼏个C++的XML解析器,个⼈感觉TinyXML是使⽤起来最舒服的,因为它的API接⼝和Java 的⼗分类似,⾯向对象性很好。

TinyXML是⼀个开源的解析XML的解析库,能够⽤于C++,能够在Windows或Linux中编译。

这个解析库的模型通过解析XML⽂件,然后在内存中⽣成DOM模型,从⽽让我们很⽅便的遍历这棵XML树。

DOM模型即⽂档对象模型,是将整个⽂档分成多个元素(如书、章、节、段等),并利⽤树型结构表⽰这些元素之间的顺序关系以及嵌套包含关系。

如下是⼀个XML⽚段:<Persons><Person ID="1"><name>周星星</name><age>20</age></Person><Person ID="2"><name>⽩晶晶</name><age>18</age></Person></Persons>在TinyXML中,根据XML的各种元素来定义了⼀些类:TiXmlBase:整个TinyXML模型的基类。

TiXmlAttribute:对应于XML中的元素的属性。

TiXmlNode:对应于DOM结构中的节点。

TiXmlComment:对应于XML中的注释TiXmlDeclaration:对应于XML中的申明部分,即<?versiong="1.0" ?>。

TiXmlDocument:对应于XML的整个⽂档。

TiXmlElement:对应于XML的元素。

TiXmlText:对应于XML的⽂字部分TiXmlUnknown:对应于XML的未知部分。

TiXmlHandler:定义了针对XML的⼀些操作。

Android复习题

Android复习题

Android复习题及答案一、选择题1. 下列哪些语句关于内存回收的说明是正确的?( )A、程序员必须创建一个线程来释放内存B、内存回收程序负责释放无用内存C、内存回收程序允许程序员直接释放内存D、内存回收程序可以在指定的时间释放内存对象2. Android 中下列属于Intent的作用的是( )A、实现应用程序间的数据共享B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带D、处理一个应用程序整体性的工作3. 下面的对自定style的方式正确的是( )A、 <resources><style name="myStyle"><itemname="android:layout_width">fill_parent</item></style></resources>B、 <style name="myStyle"><itemname="android:layout_width">fill_parent</item></style>C、 <resources><itemname="android:layout_width">fill_parent</item></resources>D、 <resources><stylename="android:layout_width">fill_parent</style></resources>4. 在Android中使用Menu时可能需要重写的方法有( )。

C#使用XDocument实现读取、添加,修改XML文件

C#使用XDocument实现读取、添加,修改XML文件

C#使⽤XDocument实现读取、添加,修改XML⽂件新建xml⽂件编写如下内容做测试使⽤
需要引⽤:System.Xml.Linq 命名空间
⼀、读取XML
读取所有⽂档
筛选⼦元素为attribute1的元素,结果是IEumerable
通过Linq获取元素的值、名称、和属性值
断点结果:
通过Linq查询语句获取XML
断点结果:
⼆、添加新的节点
准备新的节点和内容,并添加属性和值
断点结果:
读取已有XML并获取到root(根结点)。

创建⽂件流并调⽤root的save()⽅法
运⾏结果:
三、修改已有属性的内容
读取所有⽂档
获取到需要修改的节点
修改值和属性的值
创建⽂件流并保存
删除则只需要调⽤所要删除⼦元素的Remove()⽅法并保存。

本篇代码最后都必须保存,没调⽤保存会导致节点丢失。

C语言操作XML

C语言操作XML

简单的例子
• encoding=“utf-8" 表示该文档采用utf-8编码,采用哪种编码 取决于你所用到的字符集 • "<body>"是文档的主体部分 • 注意:标签必须是成对出现,有开始有结束“</body>”, 文档中只能有一个根元素
稍微复杂的例子
• <?xml version="1.0" encoding="utf-8"?> • <data> • <node name="test" prog="1.sh"></node> • <node name="中文测试" prog="2.sh"></node> • </data> • 一个文档中只能包含一个根元素,根元素可以包含任意子 元素 • 一个元素中可以包含0个或多个属性 • 元素可以为空元素,空元素表示该元素中没有包含文本元 素
练习
• 安装mxml库到linux系统中 • 1、使用mxml库创建一个xml文件: • led_config.xml • 2、使用mxml库读取led_config.xml,将zipfile和两个href的 值使用printf输出
C语言实现的mxml库
• • • • • • • • • / 最新版本2.7 下载mxml-2.7.tar.gz进行安装 cat README ./configure make make install cp /usr/local/lib/libmxml.* /lib/ 将所有安装的库文件拷贝到lib目录下
特殊字符
• • • • • • 在 XML 中有 5 个预定义的实体引用 &lt; < 小于 &gt; > 大于 &amp; & 和号 &apos; ' 省略号 &quot; " 引号

如何对xml文件进行编辑_

如何对xml文件进行编辑_

如何对xml文件进行编辑_XML文档可以包含外文字符比如挪威语或者法语(中文当然也可以!这一部分还是不能照原文翻译,下面有些内容是我自己写的)为了让你的解析器能够明白这些字符,你必需在XML文档中统一的字符编码标准。

--------------------------------------------------------------------------------Windows 95/98 记事本Windows 95/98 记事本不能以Unicode的编码格式保存文件。

可以用法记事原来编辑和保存包含了外文字符的XML文档(比如:挪威语或者法语或者中文)?xml version="1.0"?notefrom小奀/fromto小林/tomessage晚上一起去火锅呀/message/note但是假如你用扫瞄器打开这个用记事本编辑过的XML文档,将会消失一个错误。

--------------------------------------------------------------------------------在Windows 95/98 记事本中用法编码Windows 95/98 记事本编辑XML文件必需进行编码属性设置。

为了避开发生错误,可以在XML文档声明中加上一个encoding属性,指明此XML文档的编码类型,但是不要用法Unicode编码。

下面的编码类型不会导致错误,, 并且汉字显示正常: ?xml version="1.0" encoding="gb2312"?下面的编码类型不会导致错误,, 并且汉字显示正常: ?xml version="1.0" encoding="gbk"?下面的编码类型不会导致错误,, 并且汉字显示不正常(乱码):?xml version="1.0" encoding="windows-1252"?下面的编码类型不会导致错误,, 并且汉字显示不正常(乱码):?xml version="1.0" encoding="ISO-8859-1"?下面的编码类型不会导致错误,,并且汉字显示正常: ?xml version="1.0" encoding="UTF-8"?下面的编码类型会导致错误,:?xml version="1.0" encoding="UTF-16"?--------------------------------------------------------------------------------用法Windows 2021 记事本Windows 2021 记事本可以以Unicode编码格式保存文件。

C#读取和写入XML文件

C#读取和写入XML文件

C#读取和写⼊XML⽂件关于xml是属于⼀个⽐较重要的东西,在平时开发的过程中,这块内容最主要的是要掌握XML内容的读取和写⼊操作。

⼀.什么是XML?XML 指可扩展标记语⾔(EXtensible Markup Language)XML 是⼀种标记语⾔,很类似HTMLXML 的设计宗旨是传输数据,⽽⾮显⽰数据XML 标签没有被预定义,您需要⾃⾏定义标签XML 被设计为具有⾃我描述性XML 是W3C 的推荐标准⼆.XML语法:1.⼀个XML包含以下⼏部分内容:⽂档声明,元素,属性,注释,CDATA(特殊字符),处理指令2.最简单的声明格式 <?xml version="1.0" ?> ⽤encoding属性声明⽂档的编码 <?xml version="1.0" encoding="UTF-8" ?> ⽤standalone属性说明⽂档是否独⽴ <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>三.XML⽂件的读取:xml⽂件内容:<?xml version="1.0" encoding="utf-8"?><library id="30"><BOOK id="20"><name>⾼等数学</name><name1>⼤学英语</name1></BOOK></library>读取XML内容:static void Main(string[] args){//将XML⽂件加载进来XDocument document = XDocument.Load("D:\\123.xml");//获取到XML的根元素进⾏操作XElement root= document.Root;XElement ele= root.Element("BOOK");//获取name标签的值XElement shuxing= ele.Element("name");Console.WriteLine(shuxing.Value);//获取根元素下的所有⼦元素IEnumerable<XElement> enumerable = root.Elements();foreach (XElement item in enumerable){foreach (XElement item1 in item.Elements()){Console.WriteLine(); //输出 name name1}Console.WriteLine(item.Attribute("id").Value); //输出20}Console.ReadKey();}写⼊XML内容:static void Main(string[] args){//获取根节点对象XDocument document = new XDocument();XElement root = new XElement("School");XElement book = new XElement("BOOK");book.SetElementValue("name", "⾼等数学");book.SetElementValue("name1", "⼤学英语");root.Add(book);root.Save("d:\\123.xml");Console.ReadKey();}注:这⾥介绍的两种简单的读取写⼊xml⽂件,更多⾼级的⽤法可以参考:有道云笔记xml部分内容 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C#程序:如何创建xml文件以及xml文件的增、删、改、查其实今天的这篇博文,是对请几天发表的博文的一个总结,只是想把xml文件的增删改查结合起来,这样更容易让初学的朋友理解,废话也不多说了,开始吧!下面是我把我在vs环境下写的代码ctrl+V然后ctrl+V了的,课根据自己的需要执行相应的方法using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml;using System.IO;namespace WriteXml{class Program{static void Main(string[] args){//createXml();//创建文件和添加基本数据,便于之后操作实验//addItem();//追加数据readtext();//读取数据//updatexml();//更新数据//delnode();//删除数据}private static void createXml(){XmlTextWriter writer = new XmlTextWriter("titles.xml", null);//使用自动缩进便于阅读writer.Formatting = Formatting.Indented;//写入根元素writer.WriteStartElement("items");writer.WriteStartElement("item");//写入属性及属性的名字writer.WriteAttributeString("类别", "文学");writer.WriteAttributeString("品质", "优");//加入子元素writer.WriteElementString("title", "毛著");writer.WriteElementString("author", "毛泽东");writer.WriteElementString("price", "10.0");//关闭根元素,并书写结束标签writer.WriteEndElement();writer.WriteEndElement();//将XML写入文件并且关闭XmlTextWriterwriter.Close();}private static void addItem(){XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load("titles.xml");XmlNode root = xmlDoc.SelectSingleNode("items");XmlElement xe1 = xmlDoc.createElement_x("item");xe1.SetAttribute("类别", "张三");xe1.SetAttribute("品质", "老师");XmlElement xmlsub1 = xmlDoc.createElement_x("title");xmlsub1.InnerText = "wahahha";xe1.AppendChild(xmlsub1);XmlElement xmlsub2 = xmlDoc.createElement_x("author");xmlsub2.InnerText = "三毛";xe1.AppendChild(xmlsub2);XmlElement xmlsub3 = xmlDoc.createElement_x("Price");xmlsub3.InnerText = "15.00";xe1.AppendChild(xmlsub3);root.AppendChild(xe1);xmlDoc.Save("titles.xml");}private static void readtext(){XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load("titles.xml");XmlNode xn = xmlDoc.SelectSingleNode("items");XmlNodeList xnl=xn.ChildNodes;foreach (XmlNode xnf in xnl){XmlElement xe = (XmlElement)xnf;Console.Write("类别"+xe.GetAttribute("类别")+" 品质");//显示属性值Console.WriteLine(xe.GetAttribute("品质"));XmlNodeList xnf1 = xe.ChildNodes;foreach (XmlNode xn2 in xnf1){Console.WriteLine(xn2.InnerText);//显示子节点点文本}Console.WriteLine();}}private static void updatexml(){XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load("titles.xml");XmlNode xns = xmlDoc.SelectSingleNode("items"); XmlNodeList xnl = xns.ChildNodes;foreach (XmlNode xn in xnl){XmlElement xe = (XmlElement)xn;if (xe.GetAttribute("类别") == "文学"){xe.SetAttribute("类别","娱乐") ;}else{xe.SetAttribute("类别", "文学");}XmlNodeList xnl2 = xe.ChildNodes;foreach (XmlNode xn2 in xnl2){XmlElement xe2 = (XmlElement)xn2;if (=="price"){if (xe2.InnerText == "10.00")xe2.InnerText = "15.00";elsexe2.InnerText = "10.00";}//break;}//break;}xmlDoc.Save("titles.xml");Console.WriteLine();Console.WriteLine();Console.WriteLine();Console.WriteLine();readtext();}private static void delnode(){XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load("titles.xml");XmlNodeList xnl = xmlDoc.SelectSingleNode("items").ChildNodes; foreach (XmlNode xn in xnl){XmlElement xe = (XmlElement)xn;if (xe.GetAttribute("类别") == "文学"){xe.RemoveAttribute("类别");//删除genre属性}else if (xe.GetAttribute("类别") == "娱乐"){xe.RemoveAll();//删除该节点的全部内容}}xmlDoc.Save("titles.xml");Console.WriteLine();Console.WriteLine();Console.WriteLine();Console.WriteLine();readtext();}}}好了到此对xml文件的简单的操作已经结束了,如果只是偶尔用一下,而且是简单的操作这些已经够了,如果深一点的,那么就自己在稍稍研究一下。

只要这篇博文你看懂了理解了,xml就变得弱小而任你宰割了!哈哈。

相关文档
最新文档