XML文件基本操作
利用VB操作XML数据
利用VB操作XML数据在VB中,有几种方法可以操作XML数据。
下面将介绍一些常用的方法:1. 创建XML文档:可以使用XMLTextWriter类或XDocument类来创建XML文档。
使用XMLTextWriter类:```vbDim writer As New XmlTextWriter("C:\path\to\file.xml", System.Text.Encoding.UTF8)writer.WriteStartDocument(True)writer.Formatting = Formatting.Indentedwriter.Indentation = 2writer.WriteStartElement("RootElement")writer.WriteEndElementwriter.WriteEndDocumentwriter.Close```使用XDocument类:```vbDim doc As XDocument = New XDocumentNew XDeclaration("1.0", "utf-8", "yes"),New XElement("RootElement")doc.Save("C:\path\to\file.xml")```2. 读取XML文档:可以使用XmlDocument类、XmlReader类或XDocument类来读取XML文档。
使用XmlDocument类:```vbDim doc As New XmlDocumentdoc.Load("C:\path\to\file.xml")Dim root As XmlNode = doc.SelectSingleNode("RootElement")```使用XmlReader类:```vbDim reader As XmlReader =XmlReader.Create("C:\path\to\file.xml")While reader.ReadIf reader.NodeType = XmlNodeType.Element AndAlso = "RootElement" Then'处理根元素End IfEnd Whilereader.Close```使用XDocument类:```vbDim doc As XDocument = XDocument.Load("C:\path\to\file.xml") Dim root As XElement = doc.Element("RootElement")```使用XmlDocument类:```vbDim doc As New XmlDocumentdoc.Load("C:\path\to\file.xml")Dim root As XmlNode = doc.SelectSingleNode("RootElement")Dim childElement As XmlElement =doc.CreateElement("ChildElement")Dim attribute As XmlAttribute =doc.CreateAttribute("AttributeName")attribute.Value = "AttributeValue"childElement.Attributes.Append(attribute)root.AppendChild(childElement)doc.Save("C:\path\to\file.xml")```使用XmlReader类:```vbDim reader As XmlReader =XmlReader.Create("C:\path\to\file.xml")While reader.ReadIf reader.NodeType = XmlNodeType.Element AndAlso = "RootElement" ThenDim childElement As XmlWriter =reader.CreateElement("ChildElement")writer.WriteAttributeString("AttributeName", "AttributeValue")writer.WriteEndElementEnd IfEnd Whilereader.Close```使用XDocument类:```vbDim doc As XDocument = XDocument.Load("C:\path\to\file.xml") doc.Root.Add(New XElement("ChildElement", NewXAttribute("AttributeName", "AttributeValue")))doc.Save("C:\path\to\file.xml")```以上是操作XML数据的一些基本方法,可以根据需求进行扩展。
Android利用Document实现xml读取和写入操作
Android利⽤Document实现xml读取和写⼊操作本⽂实例为⼤家分享了利⽤Document实现xml读取和写⼊操作,供⼤家参考,具体内容如下⾸先先来介绍⼀下什么xml?xml是可扩展标记语⾔,他可以⽤来标记数据,定义数据类型。
是⼀种允许⽤户对⾃⼰标记语⾔进⾏定义的源语⾔。
解析XML⽂件的⽅法有很多⽅法:dom解析,就是document以及PULL和SAX⽅法。
今天给⼤家分享⼀下如何⽤Document来操作XML。
效果图:⾸先先对布局⽂件进⾏操作:activity_main.xml:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.oak.d3_xml.MainActivity"><TextViewandroid:id="@+id/tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="⽣成"android:id="@+id/bt_create"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="读取"android:id="@+id/bt_read"/></LinearLayout>主代码:MainActivity.java: 值得注意的是Document类中的包要导W3C的包package com.oak.d3_xml;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;public class MainActivity extends AppCompatActivity {private TextView textView;//⽤于展⽰读取xml的内容private Button bt_create;//⽤于创建xml⽂件private Button bt_read;//⽤于读取xml⽂件private File file;//xml⽂件路径@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);file = new File(getFilesDir(),"languages.xml");//获取到xml⽂件textView = (TextView) findViewById();//拿到textView控件bt_create = (Button) findViewById(R.id.bt_create);//拿到创建按钮bt_read = (Button) findViewById(R.id.bt_read);//拿到读取按钮bt_create.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//这⾥利⽤的是dom对xml进⾏操作的//实例化⼀个DocmentBuilderFactory,调⽤其静态⽅法获取DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();try {//实例化⼀个DocumentBuilderDocumentBuilder builder = builderFactory.newDocumentBuilder();//实例化⼀个xml⽂件Document newxml = builder.newDocument();//创建⼀个根标签Element languages = newxml.createElement("languages");//为其设置属性languages.setAttribute("cat","it");//for循坏3次,分别创建出三个标签,每个标签都包含内容for (int i=0;i<3;i++){//创建languages的⼦标签lanElement lan = newxml.createElement("lan");//设置属性lan.setAttribute("id",i+"");//创建lan的⼦标签Element name = newxml.createElement("name");//设置内容name.setTextContent("Java"+i);//创建lan的⼦标签Element ide = newxml.createElement("ide");//设置内容ide.setTextContent("Eclipse"+i);//将name和ide分别加⼊lan这个标签中lan.appendChild(name);lan.appendChild(ide);//将lan将⼊languages标签中languages.appendChild(lan);}//将languages加⼊到xml⽂件中newxml.appendChild(languages);//实例化Transformer⼯⼚TransformerFactory transformerFactory = TransformerFactory.newInstance();//获取到TransformerTransformer transformer = transformerFactory.newTransformer();//设置输出格式transformer.setOutputProperty("encoding","UTF-8");//设置输出流OutputStream os = new FileOutputStream(file);//将⽂件写出transformer.transform(new DOMSource(newxml),new StreamResult(os));Toast.makeText(getApplicationContext(),"⽣成成功",Toast.LENGTH_SHORT).show(); } catch (ParserConfigurationException e) {e.printStackTrace();} catch (TransformerConfigurationException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();} catch (TransformerException e) {e.printStackTrace();}}});bt_read.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//获取到DocumentBuilder的⼯⼚实例化DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();try {//拿到DocumentBuilderDocumentBuilder builder = builderFactory.newDocumentBuilder();//解析xml⽂件Document xml = builder.parse(file);//获取其根标签Element languages = xml.getDocumentElement();//根据⼦标签进⾏查找,返回的是⼀个list集合NodeList list = languages.getElementsByTagName("lan");textView.setText("");//将textView中的内容置空for (int i=0; i<list.getLength(); i++){//获取到⼦标签lanElement lan = (Element) list.item(i);//获取到他的属性String id = lan.getAttribute("id");//获取到他的⼦标签name的内容String name = lan.getElementsByTagName("name").item(0).getTextContent();//获取到他的⼦标签ide的内容String ide = lan.getElementsByTagName("ide").item(0).getTextContent();//显⽰到textView中textView.append(id+"\n"+name+"\n"+ide+"\n");}} catch (ParserConfigurationException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}});}}到这⾥利⽤Document来操作XML⽂件就完成了。
closedxml使用手册
closedxml使用手册摘要:1.闭包XML 使用手册概述2.闭包XML 的基本概念3.闭包XML 的使用方法4.闭包XML 的实例解析5.闭包XML 的注意事项正文:一、闭包XML 使用手册概述闭包XML 使用手册是一本介绍如何使用闭包XML 进行数据处理和文档操作的教程。
闭包XML 是一种轻量级的XML 库,它提供了许多方便的功能,如数据解析、数据验证、XPath 查询等,使得XML 文档的处理变得更加简单快捷。
二、闭包XML 的基本概念1.闭包XML 库:闭包XML 库是一个基于Java 的XML 处理库,它提供了丰富的API,可以方便地进行XML 文档的解析、验证、查询等操作。
2.XML 文档:XML 文档是一种以XML(eXtensible Markup Language,可扩展标记语言)格式编写的数据文件。
XML 文档具有严格的结构,由一系列的元素和属性组成。
3.XPath:XPath 是一种用于查询XML 文档的表达式语言,它可以帮助我们快速定位到XML 文档中的特定数据。
三、闭包XML 的使用方法1.引入闭包XML 库:在使用闭包XML 之前,需要先引入闭包XML 库到项目中。
2.解析XML 文档:使用闭包XML 库提供的API,可以方便地对XML 文档进行解析,将XML 文档转换为Java 对象。
3.验证XML 文档:闭包XML 库提供了XML 文档验证功能,可以检查XML 文档是否符合预期的结构和规范。
4.使用XPath 查询:通过闭包XML 库,我们可以使用XPath 表达式来查询XML 文档中的数据,快速定位到需要的信息。
四、闭包XML 的实例解析以下是一个使用闭包XML 库解析XML 文档的实例:```javaimport com.closedxml.parser.Parser;import com.closedxml.parser.xml.XmlParser;import com.closedxml.data.XElement;public class Main {public static void main(String[] args) {String xmlString ="<root><element1>value1</element1><element2>value2</element2 ></root>";Parser parser = new XmlParser();XElement xElement = parser.parse(xmlString);System.out.println("Root: " + xElement.getName());System.out.println("Element1: " +xElement.element("element1").textTrim());System.out.println("Element2: " +xElement.element("element2").textTrim());}}```五、闭包XML 的注意事项1.在使用闭包XML 库时,需要确保XML 文档的结构和格式符合规范,否则解析过程可能会出错。
怎么打开xml文件的方法和软件
怎么打开xml文件的方法和软件怎么打开xml文件的方法和软件XML是Extensible Markup Language的简写,一种扩展性标识语言。
下面教你怎么打开xml文件的方法和软件。
xml文件怎么打开的方法:其实最简单的就是用EXCEL表格打开了。
也可以用Netscape 6来打开XML文档,并且也可以用右键选择“察看源文件” ,当你用Netscape 6打开XML文档后,浏览器将用带颜色的代码显示根元素和子元素。
如何在Excel 中打开文件当您, Excel 中打开 XML 文件将提示您以选择要导入 XML 数据的下列方法之一:作为 XML 列表作为只读工作簿使用 XML 源任务窗格打开该文件作为 XML 列表当您打开一个 XML 源, Excel 寻找用于 XML 样式表 (XSL) 标记。
XSL 说明数据是如何以显示如果标记是存在, Excel 提示与选择,或不应用样式表。
如果您选择要应用一个 XSL, XSL 规定如何呈现数据;这里, 其余部分与本文此部分中信息不适用。
如果没有 XSL 标记, 没有收到以下消息:指定 XML 源没有引用到架构。
Excel 将创建基于 XML 源数据架构。
然后 Excel 导入 XML 源中数据。
通过多行如果 XML 数据包含重复字段内元素, Excel 传播数据。
每一行包含一个唯一的数据集。
这会导致 XML 才能显示为 Excel 中的行大数字中小的数据集。
打开该文件作为只读工作簿当您选择要打开一个 XML 源文档作为只读工作簿, 第一个标记的`元素使用像标题并且单元格 A 1 中放置。
其余的标记是按字母顺序排序,跨第二行放置。
作为只读工作簿打开它时将被分为天气报告示例本文中前面:列标题下面列表/ 区域 / 城市/ 区域 / 国家/ 区域 / 地区/ 区域 / 状态/date索引 measurements / h -/ measurements / 湿度/ measurements / skies/ measurements / 温度索引 measurements / uv -/ measurements / 可视性measurements / wind / directionmeasurements / wind / windspeed/ 时间对于每个这些列数据是否一对数据, 是放在第三行的电子表格。
xmlnotepad使用技巧
文章标题:深入剖析XMLNotepad的使用技巧在现今信息技术飞速发展的时代,XML已经成为了信息交换和数据存储的一种常见格式。
而XMLNotepad作为一个功能强大的XML编辑工具,它的使用技巧也变得越来越重要。
本文将从简到繁地向您介绍XMLNotepad的使用技巧,帮助您更好地利用这个工具来编辑和管理XML文件。
1. XMLNotepad简介XMLNotepad是一个免费的XML编辑器,由微软公司开发。
它提供了丰富的功能和友好的界面,能够帮助用户轻松地编写、查看和编辑XML文档。
作为一个功能强大而又易于使用的工具,XMLNotepad在处理XML文件方面有着独特的优势。
2. XMLNotepad的基本功能XMLNotepad的基本功能包括XML文档的创建、编辑、保存和浏览。
通过XMLNotepad,用户可以轻松地打开并查看XML文件的层次结构,对节点进行操作,并实时预览文件的变化。
XMLNotepad还提供了智能的代码提示和语法高亮功能,让用户能够更加便捷地编写XML 文档。
3. XMLNotepad高级功能除了基本功能外,XMLNotepad还支持高级的XML文档操作,例如XSLT转换、XPath查询和XML Schema验证等。
通过这些高级功能,用户可以更加灵活地处理XML文档,并进行更多样化的操作。
用户可以利用XSLT转换技术将XML文档转换为其他格式的文档,或者通过XPath查询快速定位到所需的节点。
4. XMLNotepad的实际应用在实际应用中,XMLNotepad可以被广泛用于各种场景,例如Web开发、数据管理和配置文件编辑等。
通过XMLNotepad,用户可以更加高效地处理XML文档,降低错误率,提高工作效率。
以Web开发为例,XMLNotepad可以帮助开发者快速地编辑和调试XML格式的配置文件,同时通过其强大的验证功能避免常见的语法错误。
5. 个人观点与理解作为一名资深的XML编辑工具用户,我个人对XMLNotepad有着深刻的理解和丰富的实践经验。
closedxml使用手册
closedxml使用手册摘要:一、前言二、closedxml 简介1.什么是closedxml2.为什么使用closedxml三、closedxml 基本操作1.创建XML 文档2.添加XML 元素和属性3.修改XML 元素和属性4.删除XML 元素和属性5.查找和替换XML 内容四、closedxml 高级操作1.遍历和修改XML 文档2.导入和导出XML 数据3.验证XML 文档五、closedxml 应用案例1.案例一:生成XML 文件2.案例二:从XML 文件中读取数据六、总结正文:一、前言closedxml 是一款用于处理XML 文档的Python 库,它可以帮助我们轻松地创建、读取、修改和删除XML 文档。
在许多实际应用中,我们都需要处理XML 格式的数据,closedxml 为我们提供了方便快捷的处理方式。
二、closedxml 简介2.1 什么是closedxmlclosedxml 是一个Python 库,用于处理XML 文档。
它基于Python 的解析器,提供了简单易用的API,使开发者能够轻松地创建、读取、修改和删除XML 文档。
2.2 为什么使用closedxmlclosedxml 具有以下优点:- 简单易用:closedxml 提供了简单直观的API,使开发者能够快速上手。
- 高效性能:closedxml 基于Python 的内置解析器,性能优于其他第三方库。
- 跨平台支持:closedxml 可以在Windows、Linux 和Mac OS X 等平台上运行。
三、closedxml 基本操作3.1 创建XML 文档要创建一个XML 文档,可以使用closedxml 的Document() 函数。
例如:```pythonfrom closedxml import etreedoc = etree.Document()```3.2 添加XML 元素和属性要向XML 文档中添加元素和属性,可以使用doc.create_element() 和doc.set() 方法。
读写XML的四种方法
读写XML的四种方法XML(eXtensible Markup Language)是一种用于表示和传输数据的标记语言。
它具有良好的可读性和扩展性,被广泛应用于Web开发、数据交换和配置文件等领域。
在读写和处理XML数据时,有许多方法可供选择。
本文将介绍四种常见的读写XML的方法:DOM、SAX、JDOM、和XMLStreamReader/XMLStreamWriter。
1. DOM(Document Object Model):DOM是一种基于树形结构的解析器,它将整个XML文档加载到内存中,并将其表示为一个对象树。
在DOM中,每个XML元素都被表示为一个节点(Node),可以通过节点的属性和方法对其进行操作。
读取XML文档时,可以使用DOM解析器将其转换为一个DOM树,然后通过节点的方法访问和修改树结构。
写入XML文档时,可以通过创建和修改节点来构建DOM树,并使用DOM解析器将其保存为XML文档。
使用DOM读取XML文档的基本步骤如下:- 创建一个DocumentBuilderFactory对象。
- 根据DocumentBuilderFactory对象创建一个DocumentBuilder对象。
- 使用DocumentBuilder对象解析XML文档,并返回一个Document对象。
- 通过Document对象的方法遍历和操作XML文档的节点。
使用DOM写入XML文档的基本步骤如下:- 创建一个DocumentBuilderFactory对象。
- 根据DocumentBuilderFactory对象创建一个DocumentBuilder对象。
- 使用DocumentBuilder对象创建一个Document对象。
- 通过Document对象的方法创建和添加元素节点、属性节点等。
- 使用TransformerFactory和Transformer对象将Document对象保存为XML文档。
DOM的优点是易于使用和理解,可以方便地遍历和修改XML文档。
四种xml操作方式的基本使用方法
}
}
public void startElement(String uri,String localName,String qName,Attributes attrs) {
Document doc = builder.parse(f);
NodeList nl = doc.getElementsByTagName("VALUE");
for (int i=0;i<nl.getLength();i++){
System.out.print("车牌号码:" + doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
public MyXMLReader() {
super();
}
public static void main(String args[]) {
long lasting = System.currentTimeMillis();
try {
SAXParserFactory sf = SAXParserFactory.newInstance();
3. 四种xml操作方式的基本使用"1.0" encoding="GB2312"?>
<RESULT>
<VALUE>
<NO>A1234</NO>
<ADDR>四川省XX县XX镇XX路X段XX号</ADDR>
对Xml文档进行操作(修改,删除)
对Xml⽂档进⾏操作(修改,删除)<?xml version="1.0" encoding="utf-8"?><Products><Product id="0" proName="aa1" proPrice="12" proInfo="bb"></Product><Product id="1" proName="电脑" proPrice="3200" proInfo="电脑电脑电脑电脑电脑电脑"></Product><Product id="2" proName="mp4" proPrice="400" proInfo="mp4mp4mp4mp4mp4mp4mp4mp4mp4"></Product><Product id="3" proName="mp4" proPrice="400" proInfo="mp4mp4mp4mp4mp4mp4mp4mp4mp4"></Product><Product id="4" proName="mp5" proPrice="500" proInfo="mp5mp5mp5mp5mp5mp5mp5mp5mp5"></Product></Products>下⾯我们来看看如何对上⾯的xml⽂档进⾏删除和修改的操作:其实很简单,⼤概也是分⼀下⼏个步骤:1、将xml⽂档加载到内存中2、找到要删除的节点(根据条件)3、重新保存加载xml⽂档根绝代码具体来看看如何操作修改:protected void Button2_Click(object sender, EventArgs e){XmlDocument xmldocument = new XmlDocument();string path = Server.MapPath("~/Product.xml");xmldocument.Load(path);string xmlPath = "//Products//Product";//根据路径找到所有节点XmlNodeList nodeList = xmldocument.SelectNodes(xmlPath);//循环遍历这些⼦foreach (XmlNode node in nodeList){//根据节点的某个属性找到要操作的节点if(node.Attributes["id"].Value=="4"){//对节点进⾏修改操作node.Attributes["proName"].Value = "aa1";node.Attributes["proPrice"].Value = "12";node.Attributes["proInfo"].Value = "bb";}}//重新加载保存xmldocument.Save(path);}上⾯是对xml进⾏的修改的操作,删除基本和它差不多删除protected void Button1_Click(object sender, EventArgs e){XmlDocument doc = new XmlDocument();string path = Server.MapPath("~/Product.xml");doc.Load(path);XmlNodeList xmlNodeList = doc.SelectNodes("//Products//Product");foreach (XmlNode xmlNode in xmlNodeList){if(xmlNode.Attributes["id"].Value=="4"){//找到⽗节点,从⽗节点删除该节点xmlNode.ParentNode.RemoveChild(xmlNode);}}doc.Save(path);}当然了,也可以删除通过RomoveAllAttributes,RemoveAttribute或RemoveAttributeAt等来删除属性前端时间,在⼀本项⽬教材书上,看到他们对Xml⽂档处理的时候,在查找节点的时候⽤的是索引XmlNode xmlNode = doc.SelectSingleNode("//Products//Product[5]");本⼈认为这种⽅法不可取,我们⼀般都会让你⼀个id对应⼀个节点,如果采取这种⽅式,那么很可能⽆法找到需要的节点,造成程序⽅⾯的错误,这是本⼈的⼀些见解,⼤家有什么意见可以提出来,共同学习!。
python lxml的使用方法
python lxml的使用方法Python lxml 的使用方法Python lxml 是一个功能强大的库,用于处理 XML 和 HTML 文档。
它提供了一组简单而灵活的工具,使开发者能够方便地解析、遍历和操作 XML 和 HTML 文档。
在本文中,我们将探讨如何使用 Python lxml 来处理 XML 和 HTML 文档。
首先,我们需要安装 lxml 库。
可以使用 pip 命令来安装:```pip install lxml```安装完成后,我们可以开始使用 lxml 来处理 XML 和 HTML 文档。
1. 解析 XML 文档使用 lxml 解析 XML 文档非常简单。
我们可以使用 `lxml.etree` 模块中的`parse` 函数来解析 XML 文件。
```pythonfrom lxml import etreetree = etree.parse("example.xml")root = tree.getroot()```在上面的代码中,我们首先导入了 `etree` 模块,并使用 `parse` 函数解析了名为 `example.xml` 的 XML 文件。
解析后,我们可以使用 `getroot` 方法获取 XML 文档的根元素。
2. 遍历 XML 文档一旦我们获得了 XML 文档的根元素,我们就可以开始遍历整个 XML 文档。
可以使用 `iter` 方法和 `Element` 对象的 `iterchildren` 方法来迭代 XML 树中的节点。
```pythonfor element in root.iter():print(element.tag, element.text)```上述代码将打印出 XML 文档中每个节点的标签名和文本内容。
3. 查找节点使用 lxml 可以方便地查找 XML 文档中的节点。
我们可以使用 `find` 方法来查找具有指定标签名的第一个节点,或使用 `findall` 方法来查找所有具有指定标签名的节点。
c#读写XML文件
System.Xml命名空间包含了一些最重要的XML类,其中最主要的类是和XML文档的读写操作相关的类。这些类中包括4个与读相关的类以及2个与写相关的类。它们分别是:XmlReader、XmlTextReader、 XmlValidatingReader、XmlNodeReader、XmlWriter以及 XmlTextWriter。本文将重点介绍这些类,因为它们是最基本也是最重要的类。
XmlNode类是一个非常重要的类,它代表了XML文档中的某个节点。该节点可以是XML文档的根节点,这样它就代表整个XML文档了。它是许多很有用的类的基类,这些类包括插入节点的类、删除节点的类、替换节点的类以及在XML文档中完成导航功能的类。同时,XmlNode类还为程序员提供了获取双亲节点、子节点、最后一个子节点、节点名称以及节点类型等的属性。它的三个最主要的子类包括: XmlDocument、XmlDataDocument以及XmlDocumentFragment。XmlDocument类代表了一个XML文档,它提供了载入和保存XML文档的方法和属性。这些方法包括了Load、LoadXml和Save等。同时,它还提供了添加特性(Attributes)、说明(Comments)、空间(Spaces)、元素(Elements)和新节点(New Nodes)等XML项的功能。XmlDocumentFragment类代表了一部分XML文档,它能被用来添加到其他的XML文档中。 XmlDataDocument类可以让程序员更好地完成和中的数据集对象之间的互操作。
using System;
using System.Xml;
namespace ReadXml
{
class Class1
{
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文件进行增加操作下面我们介绍一下删除操作,删除共有两种,一是删除某一节点,一种是删除某一节点的属性。
XML文件操作指南
(1)文档对象模型(DOM)类是XML文档的内存中表示形式。DOM 使你能够以编程方式读取、操作和修改XML文档。XmlReader类也读取XML,但它提供非缓存的只进、只读访问。这意味着使用 XmlReader无法编辑属性值或元素内容,或无法插入和移除节点。编辑是 DOM 的主要功能。XML数据在内存中表示是常见的结构化方法,尽管实际的XML数据在文件中时或从另一个对象传入时以线性方式存储。
三、XML文档对象模型(DOM)
.NET仅仅支持XML DOM模式,而不支持SAX模式。文档对象模型(DOM)类是XML文档的内存中表示形式,XML数据在内存中的表示是结构化的,一般使用树结构表示DOM对象模型。为了对DOM内存结构有更直观的认识,先看下例XML数据在内存的构造。
<xml version="1.0">
4.在DOM中删除节点
在DOM中删除节点,可使用RemoveChild方法,如从DOM中删除多个节点可直接调用RemoveAll方法,它将删除当前节点的所有子级和属性。
如:
XmlDocument doc = new XmlDocument();
doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
XmlDocument doc = new XmlDocument();
doc.Load(reader);
Console.WriteLine(doc.OuterXml);
另外,还有一个简便的LoadXML方法,它直接从字符串中读取XML,如:
//新建XmlDocument对象。
genuineticket
一、指导思想以新课程标准为指导,全面贯彻党的教育方针,落实立德树人的根本任务,以培养学生爱国主义精神、民族自豪感和历史责任感为宗旨,提高学生的历史素养,激发学生的学习兴趣,培养学生的创新精神和实践能力。
二、教学目标1. 完成七年级上册历史教学内容,确保学生掌握基本的历史知识。
2. 提高学生的历史思维能力,培养学生的历史意识。
3. 培养学生的爱国主义精神、民族自豪感和历史责任感。
4. 激发学生的学习兴趣,提高学生的学习成绩。
三、具体工作计划1. 教材分析(1)深入学习新课程标准,准确把握教材内容。
(2)了解教材特点,合理设计教学活动。
(3)结合学情,调整教学内容,注重知识的拓展和深化。
2. 教学方法(1)采用启发式、探究式、讨论式等教学方法,激发学生的学习兴趣。
(2)注重培养学生的历史思维能力,提高学生的历史素养。
(3)运用多媒体教学手段,丰富课堂内容,提高教学效果。
3. 教学过程(1)课堂讲解:注重重点、难点,讲清历史概念、历史事件和历史发展脉络。
(2)课堂练习:设计针对性强的练习,巩固学生所学知识。
(3)课堂讨论:引导学生积极参与,培养学生的历史思维能力。
(4)课后作业:布置适量、有针对性的作业,帮助学生巩固所学知识。
4. 教学评价(1)注重过程性评价,关注学生的学习过程和进步。
(2)采用多种评价方式,如课堂表现、作业完成情况、历史知识竞赛等。
(3)定期召开家长会,与家长沟通交流,共同关注学生的成长。
5. 教研活动(1)积极参加教研活动,学习先进的教学理念和教学方法。
(2)撰写教学反思,不断改进教学方法,提高教学质量。
(3)开展教学研究,探索适合本地区、本学校的历史教学模式。
四、工作要求1. 严谨治学,勤奋敬业,不断提高自身素质。
2. 关爱学生,尊重学生,营造良好的课堂氛围。
3. 严格遵守教学纪律,按时完成教学任务。
4. 加强与同事的沟通交流,共同提高教学质量。
5. 积极参加学校组织的各项活动,为学校的发展贡献力量。
C中对XML文件的操作
Xml作为一个非常重要的纯文本格式已经进入了编程的很多领域,作为一个面向应用层面的c#也一样在很多领域离不开Xm l。
但是,c#在很多方面对X ml做了写封装,以至于很多操作Xml的代码,都不需要手动去写。
例如,c#写WebSer vice这种需要大量操作Xml的服务,除了极其个别的情况下,基本看不到任何操作Xml的代码。
这是c#的一个优势,但是,最近发现正是这样一些c#的优势,导致了新一代c#程序员的能力退化。
因为90%的情况下,不需要手动操作Xml,所以,年轻的c#程序员也觉得没必要为了这10%的情况,而去学如何手工读写Xml。
真不知道,ms 提供了这么简便的工具,是ms做的善事还是作的孽。
好吧,废话就不说了,转入主题。
1.如何用XmlDom的方式读取XmlXml Dom方式是最原始的一种操作Xml的途径,从.net Framewo rk 1.0开始就开始支持Dom方式。
1.1如何以Dom方式加载Xm l要读取Xml首先要加载Xm l,加载的方式有两种,一种是从流或类似的Read er加载,例如:当然还可以从字符串加载:1.1读取无nam espace的XmlXml已经准备好了,下面就开始读取这个Xml。
现在希望读取d ata节下面的所有ite m中的tex t,那么就可以:看看运行结果:但是,这样写的问题有很多,例如在data节点中有非i tem的节点,这样访问,也就被无差别的把非item项也写出来了。
例如把如果数据改成这样:这样,在data节里面,除了4个ite m,还有一个oth er,这个other是不需要的,必须被排除掉,如果直接用第一中Child Nodes去访问的话,会得到这样的结果:显然“!@#”也被选择出来了,这可不是我们所期望的,所以,改用XPath的方式访问:其运行结果为:很好的othe r项排除在需要的节点外,这才是我们真正想要的结果:)1.2读取有nam espace的Xml和c#一样Xml也有namesp ace,并且names pace在X ml中的作用巨大,也许你并未感受到names pace的作用,但是,你可能已经不得不面对那些有namesp ace的Xm l了。
openCV读取XML文件基本操作
openCV读取XML⽂件基本操作openCV读取XML⽂件基本操作与保存XML⽂件操作类似,也有cvReadInt之类的函数,和保存struct相对应,读取的时候可以先选择节点(保存时的struct名称),再选择数据;如果保存数据时是没有名称,譬如CV_NODE_SEQ模式,直接选择cvReadInt(),如果有名称,譬如CV_NODE_MAP模式,选择cvReadIntByName()进⾏读取。
<?xml version="1.0"?><opencv_storage><int>100</int><bool_true>1</bool_true><bool_false>0</bool_false><float>9.9870002746582031e+001</float><string>"this is a string"</string><slParams><slParams_projWidth>1140</slParams_projWidth><slParams_projHeight>912</slParams_projHeight><slParams_camWidth>1024</slParams_camWidth><slParams_camHeight>1280</slParams_camHeight><slParams_colEncode>1</slParams_colEncode><slParams_rowEncode>0</slParams_rowEncode></slParams><point>2 3</point></opencv_storage>例如要读取以上的xml⽂件中的数据,使⽤cvReadInt()系类的函数,其中第⼀个参数是打开⽂件的名称,第⼆个是所要读取的数据的节点名称,对于直接存放在xml下的数据,节点为NULL,保存在xml时存放在sruct中的数据,节点就是struct的名称,如果是CV_NODE_MAP模式或者XML下的数据,⽤cvReadIntByName(),存储节点的类型为CvFileNode,取节点名称的函数为cvGetFileNodeByName()。
使用LINQ to XML操作XML文档
如说 需 要 查 找 属性 i d值 为 “ 号 l 的 “ s ” 井 ” u e
元 素
I Enu e a e X Elm e > u e f o m r bl< e nt s = r m e l
中 的 XM L数 据 , 就 是 L NQ t XM L。 这 I o 它 可 以 在 . T F a wo k 程 语 言 中 处 理 NE r me r 编 XML。 用 它 可 以 实 现 功 能 强 大 的 XM L查 使 询 和 直 观 的 XM L文 档 创 建 或 转 换 。 是 . 它 NET语 言 集 成 查 询 ( NQ) 组 件 , 在 针 LI 的 旨 对 对 象 、 系 数 据 和 XM L数 据 提 供 一 致 的 关
3. 查 找 具 有 特 定 属 性 的 元 素 1 如 果 要 查 找 其 属 性 具 有 特 定 值 的 元
素 , 般 用 到 XE e n 的Atrb t 属 性 。 一 lme t ti u e 比
(Ad D t ” Dae me No ) “ d a e , tTi . w)l 4. 更新 元素 2
在 LI t XML中 更 新 x 内 容 可 以 NQ o ml
使 用 几 种 方 法 , 括 RePl e i h 、 包 a W t c S t lme t le 等 。 eE e n Vau 等
以文 档对 象 模 型( D0M) 式 将XML 据 作 形 数
为 一 组 标 准 的 对 象 对 待 。 Viu l St d o 在 s a u i
3 查询 x ML树
在 生 成 XM L树 后 , 般 要 求 对 内 存 中 一
qdomdocument用法
QDomDocument是Qt中用于处理XML文档的类,它提供了一种简单而强大的方式来解析、创建和编辑XML文档。
在Qt中,QDomDocument类是一个重要的工具,可以帮助开发者快速高效地处理XML数据。
本文将介绍QDomDocument类的基本用法,包括创建、解析、遍历和修改XML文档。
一、创建QDomDocument对象在使用QDomDocument类之前,首先需要创建一个QDomDocument对象。
创建QDomDocument对象的方法如下:```cppQDomDocument doc;```这样就创建了一个名为doc的QDomDocument对象,接下来可以使用该对象来处理XML文档。
二、解析XML文档使用QDomDocument类可以方便地解析一个XML文档。
通常情况下,可以从一个文件或者字符串中加载XML数据,然后解析成QDomDocument对象。
```cppQFile file("example.xml");if (file.open(QIODevice::ReadOnly)) {if (doc.setContent(file)) {// 解析成功}file.close();}```上面的代码展示了如何使用QFile来加载XML文件,并将其解析成QDomDocument对象。
如果文件加载和解析成功,则可以继续对XML文档进行操作。
三、遍历XML文档遍历XML文档是处理XML数据的常见操作之一。
QDomDocument 类提供了一系列方法来遍历XML文档的节点。
```cppQDomElement root = doc.documentElement(); QDomNodeList nodes = root.elementsByTagName("node"); for (int i = 0; i < nodes.size(); ++i) {QDomElement node = nodes.at(i).toElement();// 对节点进行操作}```上面的代码展示了如何获取XML文档的根节点,并遍历其子节点。
msxml 用法
MSXML(Microsoft XML Core Services)是微软提供的一组用于解析和操作XML文档的库。
以下是MSXML 的一些基本用法:1.创建DOM对象:使用MSXML库,可以创建一个DOM(Document Object Model)对象,该对象表示XML文档。
可以使用DOM对象的方法和属性来访问、修改和保存XML文档。
2.3.加载XML文档:使用DOM对象的Load方法,可以加载一个XML文件或字符串,并将其解析为DOM 对象。
例如:4.复制代码xmlDoc.Load("example.xml")1.访问XML元素和属性:使用DOM对象的方法,可以访问XML文档中的元素和属性。
例如,可以使用SelectNodes方法来选择符合特定XPath表达式的所有节点,或者使用GetAttribute方法来获取元素的属性值。
2.3.修改XML元素和属性:使用DOM对象的方法,可以修改XML文档中的元素和属性。
例如,可以使用SetAttribute方法来设置元素的属性值,或者使用ReplaceChild方法来替换一个节点。
4.5.保存XML文档:使用DOM对象的Save方法,可以将修改后的XML文档保存到文件中。
例如:6.复制代码xmlDoc.Save("example.xml")1.发送XML请求:使用MSXML库,可以发送HTTP请求并接收响应。
可以使用Curl或HttpSend等方法来发送请求,并使用DOM对象来处理响应。
这只是MSXML的一些基本用法示例,实际上MSXML还提供了许多其他方法和功能,可用于更复杂的XML 操作和处理。
请参考MSXML的文档或相关教程以获取更详细的信息。
2016新编导出XML文件格式方法步骤
导出XML文件格式方法步骤1. 在计价软件中新建项目,导出XML格式的文件必须是在项目的基础之上来导出的,所以首先必须建立一个项目2.填写项目内容,3.点项目管理,点“进入编辑窗口”后,把招标人填写上去,返回项目管理。
3.然后选中项目,点击鼠标右键选择“新建单项工程”,输入一个单项工程名称:4.再右键选中这个单项工程,选择“导入单位工程并新建”,5.选择原来用GBQ4.0做过的工程,确定打开:这里如果有多个单位工程,可以重复上述步骤,重复打开,将这些单项工程放在一个项目里面;6.这个时候选择左边第三个页签“发布标底”,“生成标底”“导出标底”7.指定导出的标底存放位置(自己一定要记住,XML格式文件就存放在这个文件夹里面)8.打开刚才导出的文件夹就可以找到使用广联达软件做的工程所生成的XML格式文件电力安全月工作总结[电力安全月工作总结]电力安全月工作总结2011年3月1日至3月31日为我公司的安全生产月,**变电站围绕;夯实基储提高素质、树立标杆、争创一流;的主题,开展了丰富多彩、形式多样的具体行动:通过看板形式宣传安全第一、预防为主的方针;通过48+4的学习机会,进行安全生产大讨论;通过安全活动进行查找本站的隐患的活动,电力安全月工作总结。
形成了;人人学会安全,层层尽责保证安全;的良好氛围,使我站的安全生产工作又上了一个新的台阶。
本站安全生产月活动具体工作如下:1.开展安全月活动宣传工作,大家坐在一起讨论活动的主题、学习实施纲要、讨论各个实施阶段的活动安排。
深刻反思11.3事故,汲取事故教训,每人写了一份11.3事故反思,并对本站的安全管理、记录报表、规章制度、培训工作、事故隐患每个值班员都谈了自己的看法和建议,对站内管理每个人都倾注了最大的热情,可见11.3对每一个值班员的触动是刻骨铭心的,安全月的必要开展对变电站各项工作的促进,尤其对值班员安全意识、主人翁精神的影响最为深刻。
2.深入开展安全生产大检查活动。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XML:Extensible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(Standard GeneralizedMarkup Language,标准通用标记语言)。
它没有标签集(tag set),也没有语法规则(grammatical rule),但是它有句法规则(syntax rule)。
任何XML文档对任何类型的应用以及正确的解析都必须是良构的(well-formed),即每一个打开的标签都必须有匹配的结束标签,不得含有次序颠倒的标签,并且在语句构成上应符合技术规范的要求。
XML文档可以是有效的(valid),但并非一定要求有效。
所谓有效文档是指其符合其文档类型定义(DTD)的文档。
如果一个文档符合一个模式(schema)的规定,那么这个文档是"模式有效的(schema valid)"。
XML文件在存储、交换和传输数据信息上有着很方便处理,那么今天这篇文章主要讲一下用C#如何实现对XML文件的基本操作,如:创建xml文件,增、删、改、查xml的节点信息。
所使用的方法很基础,方便易懂(用于自己的学习和记忆只需,同时也希望能够给你带来一些帮助,如有不合适的地方欢迎大家批评指正)。
本文的主要模块为:①:生成xml文件②:遍历xml文件的节点信息③:修改xml文件的节点信息④:向xml文件添加节点信息⑤:删除指定xml文件的节点信息假设我们需要设计出这样的一个xml文件来存储相应的信息,如下所示:<Computers><Computer ID="11111111" Description="Made in China"><name>Lenovo</name><price>5000</price></Computer><Computer ID="2222222" Description="Made in USA"><name>IBM</name><price>10000</price></Computer></Computers>那么如何生成这个xml文件?又怎么读取这个xml文件的节点信息,以及如何对这个xml文件的节点信息作相应的操作?请看如下代码示例:【注:因为我们要使用xml相关的语法和方法,所以一定要引入命名空间System.Xml】1using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Text;5 using System.Xml;67 namespace OperateXML8{9class Program10 {11staticvoid Main(string[] args)12 {13try14 {15//xml文件存储路径16string myXMLFilePath ="E:\\MyComputers.xml";17//生成xml文件18 GenerateXMLFile(myXMLFilePath);19//遍历xml文件的信息20 GetXMLInformation(myXMLFilePath);21//修改xml文件的信息22 ModifyXmlInformation(myXMLFilePath);23//向xml文件添加节点信息24 AddXmlInformation(myXMLFilePath);25//删除指定节点信息26 DeleteXmlInformation(myXMLFilePath);27 }28catch (Exception ex)29 {30 Console.WriteLine(ex.ToString());31 }32 }3334priva test aticvoid GenerateXMLFile(string xmlFilePath)35 {36try37 {38//初始化一个xml实例39 XmlDocumentmyXmlDoc =new XmlDocument();40//创建xml的根节点41 XmlElementrootElement = myXmlDoc.CreateElement("Computers");42//将根节点加入到xml文件中(AppendChild)43 myXmlDoc.AppendChild(rootElement);4445//初始化第一层的第一个子节点46 XmlElement firstLevelElement1 = myXmlDoc.CreateElement("Computer"); 47//填充第一层的第一个子节点的属性值(SetAttribute)48 firstLevelElement1.SetAttribute("ID", "11111111");49 firstLevelElement1.SetAttribute("Description", "Made in China");50//将第一层的第一个子节点加入到根节点下51 rootElement.AppendChild(firstLevelElement1);52//初始化第二层的第一个子节点53 XmlElement secondLevelElement11 = myXmlDoc.CreateElement("name"); 54//填充第二层的第一个子节点的值(InnerText)55 secondLevelElement11.InnerText ="Lenovo";56 firstLevelElement1.AppendChild(secondLevelElement11);57 XmlElement secondLevelElement12 = myXmlDoc.CreateElement("price");58 secondLevelElement12.InnerText ="5000";59 firstLevelElement1.AppendChild(secondLevelElement12);606162 XmlElement firstLevelElement2 = myXmlDoc.CreateElement("Computer");63 firstLevelElement2.SetAttribute("ID", "2222222");64 firstLevelElement2.SetAttribute("Description", "Made in USA");65 rootElement.AppendChild(firstLevelElement2);66 XmlElement secondLevelElement21 = myXmlDoc.CreateElement("name");67 secondLevelElement21.InnerText ="IBM";68 firstLevelElement2.AppendChild(secondLevelElement21);69 XmlElement secondLevelElement22 = myXmlDoc.CreateElement("price");70 secondLevelElement22.InnerText ="10000";71 firstLevelElement2.AppendChild(secondLevelElement22);7273//将xml文件保存到指定的路径下74 myXmlDoc.Save(xmlFilePath);75 }76catch (Exception ex)77 {78 Console.WriteLine(ex.ToString());79 }80 }8182privatestaticvoid GetXMLInformation(string xmlFilePath)83 {84try85 {86//初始化一个xml实例87 XmlDocumentmyXmlDoc =new XmlDocument();88//加载xml文件(参数为xml文件的路径)89 myXmlDoc.Load(xmlFilePath);90//获得第一个姓名匹配的节点(SelectSingleNode):此xml文件的根节点91 XmlNoderootNode = myXmlDoc.SelectSingleNode("Computers");92//分别获得该节点的InnerXml和OuterXml信息93string innerXmlInfo = rootNode.InnerXml.ToString();94string outerXmlInfo = rootNode.OuterXml.ToString();95//获得该节点的子节点(即:该节点的第一层子节点)96 XmlNodeListfirstLevelNodeList = rootNode.ChildNodes;97foreach (XmlNode node in firstLevelNodeList)98 {99//获得该节点的属性集合100 XmlAttributeCollectionattributeCol = node.Attributes; 101foreach (XmlAttributeattri in attributeCol)102 {103//获取属性名称与属性值104string name = ;105string value = attri.Value;106 Console.WriteLine("{0} = {1}", name, value);107 }108109//判断此节点是否还有子节点110if (node.HasChildNodes)111 {112//获取该节点的第一个子节点113 XmlNode secondLevelNode1 = node.FirstChild;114//获取该节点的名字115string name = ;116//获取该节点的值(即:InnerText)117string innerText = secondLevelNode1.InnerText;118 Console.WriteLine("{0} = {1}", name, innerText);119120//获取该节点的第二个子节点(用数组下标获取)121 XmlNode secondLevelNode2 = node.ChildNodes[1];122 name = ;123 innerText = secondLevelNode2.InnerText;124 Console.WriteLine("{0} = {1}", name, innerText);125 }126 }127 }128catch (Exception ex)129 {130 Console.WriteLine(ex.ToString());131 }132 }133134privatestaticvoid ModifyXmlInformation(string xmlFilePath) 135 {136try137 {138 XmlDocumentmyXmlDoc =new XmlDocument();139 myXmlDoc.Load(xmlFilePath);140 XmlNoderootNode = myXmlDoc.FirstChild;141 XmlNodeListfirstLevelNodeList = rootNode.ChildNodes;142foreach (XmlNode node in firstLevelNodeList)143 {144//修改此节点的属性值145if (node.Attributes["Description"].Value.Equals("Made in USA")) 146 {147 node.Attributes["Description"].Value ="Made in HongKong";148 }149 }150//要想使对xml文件所做的修改生效,必须执行以下Save方法151 myXmlDoc.Save(xmlFilePath);152 }153catch (Exception ex)154 {155 Console.WriteLine(ex.ToString());156 }157158 }159160privatestaticvoid AddXmlInformation(string xmlFilePath)161 {162try163 {164 XmlDocumentmyXmlDoc =new XmlDocument();165 myXmlDoc.Load(xmlFilePath);166//添加一个带有属性的节点信息167foreach (XmlNode node in myXmlDoc.FirstChild.ChildNodes)168 {169 XmlElementnewElement = myXmlDoc.CreateElement("color"); 170 newElement.InnerText ="black";171 newElement.SetAttribute("IsMixed", "Yes");172 node.AppendChild(newElement);173 }174//保存更改175 myXmlDoc.Save(xmlFilePath);176 }177catch (Exception ex)178 {179 Console.WriteLine(ex.ToString());180 }181 }182183privatestaticvoid DeleteXmlInformation(string xmlFilePath)184 {185try186 {187 XmlDocumentmyXmlDoc =new XmlDocument();188 myXmlDoc.Load(xmlFilePath);189foreach (XmlNode node in myXmlDoc.FirstChild.ChildNodes)190 {191//记录该节点下的最后一个子节点(简称:最后子节点)192 XmlNodelastNode = stChild;193//删除最后子节点下的左右子节点194 lastNode.RemoveAll();195//删除最后子节点196 node.RemoveChild(lastNode);197 }198//保存对xml文件所做的修改199 myXmlDoc.Save(xmlFilePath);200 }201catch (Exception ex)202 {203 Console.WriteLine(ex.ToString());204 }205 }206 }207}208上面的这个例子,首先是通过GenerateXMLFile方法在E盘创建出了我们预想的xml文件;然后通过GetXMLInformation方法对刚刚生成的xml文件进行了信息的读取;之后通过ModifyXmlInformation方法对xml文件信息作出相应的修改(<Computer ID="2222222" Description="Made in USA">修改成为<Computer ID="2222222" Description="Made in HongKong">);再之后通过AddXmlInformation方法向xml文件中添加了一个带有属性值的color节点;最后通过DeleteXmlInformation方法将刚刚添加上的color节点删除掉。