使用XMLDocument操作xml文件
- 格式:docx
- 大小:24.81 KB
- 文档页数:6
利用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数据的一些基本方法,可以根据需求进行扩展。
一、概述Java语言是一种跨评台的面向对象编程语言,被广泛应用于企业级应用程序开发领域。
XML(可扩展标记语言)是一种通用的标记语言,用于描述数据的结构和内容。
在Java中,XMLDocument类被用来表示一个XML文档,可以对XML文档进行创建、解析、修改和验证等操作。
二、XMLDocument类的概述1. XMLDocument类位于org.w3c.dom包中,是DOM(文档对象模型)的一部分。
它表示了整个XML文档的树形结构,包括文档的根节点、元素节点、属性节点、文本节点等。
2. XMLDocument类实现了Document接口,提供了操作XML文档的方法。
三、XMLDocument类的基本用法1. 创建XMLDocument对象可以通过DocumentBuilder类的实例来创建一个空的XMLDocument对象。
首先需要创建一个DocumentBuilder对象,然后使用它来创建一个Document对象。
2. 解析XML文档XMLDocument类提供了方法来解析XML文档,例如通过解析器(如SAX解析器或DOM解析器)解析XML文档,并将其转换为XMLDocument对象。
3. 遍历XML文档XMLDocument类提供了方法来遍历XML文档的节点,例如获取文档的根节点、获取子节点、获取父节点、获取兄弟节点等。
4. 修改XML文档XMLDocument类提供了方法来对XML文档进行修改,例如添加节点、删除节点、修改节点的属性和文本内容等。
5. 验证XML文档XMLDocument类提供了方法来验证XML文档的合法性,例如验证文档的结构、验证文档的数据类型等。
6. 将XMLDocument对象序列化为XML文档XMLDocument类提供了方法来将XMLDocument对象序列化为XML文档的字符串表示,以便于存储或传输。
四、XMLDocument类的示例代码以下是一个简单的示例代码,演示了如何创建一个XMLDocument对象,并对其进行一些基本操作。
XML (可扩展标记语言) 是一种用于标记电子文档结构和内容的语言。
它被广泛应用于各种领域,例如网页设计、文档管理、数据交换等。
而document.xml则是XML语言中的一个重要概念,它在各种领域中都有着重要的作用。
本文将介绍document.xml语法的基本概念和用法,帮助读者更好地理解和应用这一重要的技术。
一、document.xml的概念document.xml是一种XML文件,用于描述文档的结构和内容。
它由一系列标签(tag)和数据(data)组成,可以用来表示各种类型的文档,如网页、电子书、报告等。
通过使用document.xml,用户可以轻松地创建、编辑和管理各种类型的文档。
二、document.xml的基本语法1. 标签在XML中,标签是用来表示文档结构的基本元素。
一个标签由开始标记和结束标记组成,如<book>和</book>。
开始标记用于表示标签的起始位置,结束标记用于表示标签的结束位置。
标签还可以包含属性,用来描述标签的附加信息,如<book id="001">表示具有id属性的book标签。
2. 数据在XML中,数据是标签中的内容,用来表示文档的具体信息。
数据可以是文本、数字、图像等形式的信息,它们被包含在开始标签和结束标签之间。
在<book>标签中可以包含书名、作者、出版日期等信息。
3. 注释在XML中,注释用来对文档进行解释和说明。
注释以<!--开始,以-->结束,可以插入到标签之间或者标签外部,用来提供关于文档内容和结构的补充信息。
三、document.xml的应用1. 网页设计在网页设计中,document.xml可以用于描述网页的结构和内容。
通过使用document.xml,可以将网页的各个元素(如标题、段落、图像等)以结构化的方式表示出来,从而更好地组织和管理网页的内容。
2. 文档管理在文档管理系统中,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⽂件就完成了。
defusedxml用法一、概述DefusedXml是用于处理XML数据的库,它提供了一组易于使用和灵活的API,用于解析、创建和操作XML文档。
DefusedXml是安全的XML处理,可以避免常见的XML解析错误和漏洞。
二、安装和使用要使用DefusedXml,首先需要在项目中引入DefusedXml库。
然后,可以使用XmlDocument类来创建和操作XML文档。
以下是一个简单的示例:```rustrequire 'defused_xml'def create_xml_documentxml = DefusedXml::Xml::Document.newxml.root('User') do |root|root.element('Name') { |name| name.text = 'John Doe' } root.element('Email') { |email| email.text ='****************'}endxmlend```三、解析XML文档使用DefusedXml可以轻松地解析XML文档。
可以使用XmlDocument类的parse方法来解析XML字符串或文件。
以下是一个简单的示例:```rustxml = create_xml_document.to_xmlparsed_xml = DefusedXml::Xml::Document.parse(xml)```四、创建和操作XML元素使用DefusedXml可以创建和操作XML元素。
可以使用XmlDocument类的element方法来创建元素,并使用element方法来添加属性或文本内容。
以下是一个简单的示例:```rustxml = DefusedXml::Xml::Document.newuser = xml.root('User') do |root| { |name| name.text = 'JohnDoe' }.attribute(:id, '1')root.email { |email| email.text ='****************'}.attribute(:type,'admin')end```五、注意事项和安全措施在使用DefusedXml时,请注意以下几点:* 确保XML文档是安全的,没有注入攻击的风险。
xmldoc方法【实用版3篇】目录(篇1)1.xmldoc 方法的概述2.xmldoc 方法的步骤3.xmldoc 方法的示例4.xmldoc 方法的优点与局限性正文(篇1)xmldoc 方法是一种将 XML 文档转换为 HTML 文档的方法,它可以帮助用户将 XML 数据轻松地展示在网页上。
这种方法在数据分析、网页设计和数据可视化等领域都有广泛的应用。
接下来,我们将详细介绍xmldoc 方法的步骤、示例以及它的优点与局限性。
一、xmldoc 方法的步骤xmldoc 方法主要包括以下几个步骤:1.创建一个 XML 文档。
用户需要先创建一个包含数据的 XML 文档。
例如,我们可以创建一个包含学生信息的 XML 文档,如下所示:```xml<students><student><name>张三</name><age>18</age><gender>男</gender></student><name>李四</name><age>19</age><gender>女</gender></student></students>```2.使用 xmldoc 方法将 XML 文档转换为 HTML 文档。
我们可以使用Python 中的第三方库 lxml 来实现这一功能。
首先,需要安装 lxml 库,然后使用以下代码将 XML 文档转换为 HTML 文档:```pythonfrom lxml import htmlxml_doc = """<students><student><name>张三</name><age>18</age><gender>男</gender></student><student><name>李四</name><age>19</age><gender>女</gender></students>"""html_doc = html.fromstring(xml_doc)```3.保存或展示 HTML 文档。
读写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⽂档进⾏操作(修改,删除)<?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对应⼀个节点,如果采取这种⽅式,那么很可能⽆法找到需要的节点,造成程序⽅⾯的错误,这是本⼈的⼀些见解,⼤家有什么意见可以提出来,共同学习!。
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#.net中如何操作XML需要添加的命名空间:using System.Xml;几个公共对象:XmlDocument xmldoc ;XmlNode xmlnode ;XmlElement xmlelem ;第一步://创建到服务器同名目录下的xml文件:XmlDocument xdoc = new XmlDocument();//加入XML的声明部分<?xml version="1.0" encoding="gb2312" ?>XmlDeclaration xdecl = xdoc.CreateXmlDeclaration("1.0", "gb2312", null);xdoc.AppendChild(xdecl);//加入一根元素<Employees></Employees>XmlElement xelem = xdoc.CreateElem ent("Employees");xdoc.AppendChild(xelem);//向根元素中添加节点<Node></Node>for (int i = 1; i < 3; i++){//取出根节点XmlNode root = xdoc.SelectSingleNode("Employees");//创建一个<Node>节点XmlElement xel = xdoc.CreateElement("Node");//设置节点的属性xel.SetAttribute("name", "张三疯");xel.SetAttribute("favor", "论剑");//创建节点<title>XmlElement xSub1 = xdoc.CreateElement("title");//设置节点中的文本内容xSub.InnerText = "太极功夫";//将<title>添加到<Node>中xel.AppendChild(xSub);//XmlElement xSub2 = xdoc.CreateElement("author");xSub2.InnerText = "三疯哥";xel.AppendChild(xSub2);XmlElement xSub3 = xdoc.CreateElement("price");xSub3.InnerText = "20.8";xel.AppendChild(xSub3);//将<Node>节点添加到根节点<Employees>中root.AppendChild(xel);}//保存文件xdoc.Save(Server.MapPath("data.xml"));///////////////////////////////////////////////////////////////////// /////////////////在服务器目录下生成了名为data.xml文件,内容如下所示:<?xml version="1.0"encoding="gb2312"?><Employees><Node name="张三疯"favor="论剑"><title>太极功夫</title><author>三疯哥</author><price>20.8</price></Node><Node name="张三疯"favor="论剑"><title>太极功夫</title><author>三疯哥</author><price>20.8</price></Node></Employees>第二步:向文档中添加一个新节点内容//定义一个XML文档对象,加载XML文件XmlDocument xdoc = new XmlDocument();xdoc.Load(Server.MapPath("data.xml"));//取出文档中的根节点<Employees>XmlNode root = xdoc.SelectSingleNode("Employees");//创建一个<Node>节点XmlElement xel = xdoc.CreateElement("Node");//设置节点属性xel.SetAttribute("name", "如来");xel.SetAttribute("favor", "论棍");//定义子节点XmlElement xSub1 = xdoc.CreateElement("title");xSub1.InnerText= "狂疯棍法";xel.AppendChild(xSub1);XmlElement xSub2 = xdoc.CreateElement("author");xSub2.InnerText = "高手";xel.AppendChild(xSub2);XmlElement xSub3 = xdoc.CreateElement("price");xSub3.InnerText = "123.4";xel.AppendChild(xSub3);//将新节点添加到根节点中root.AppendChild(xel);//保存文档xdoc.Save(Server.MapPath("data.xml"));///////////////////////////////////////////////////////////////////// /////////////////结果在原有内容中添加了一条新内容:<?xml version="1.0"encoding="gb2312"?><Employees><Node name="张三疯"favor="论剑"><title>太极功夫</title><author>三疯哥</author><price>20.8</price></Node><Node name="张三疯"favor="论剑"><title>太极功夫</title><author>三疯哥</author><price>20.8</price></Node><Node name="如来"favor="论棍"><title>狂疯棍法</title><author>高手</author><price>123.4</price></Node></Employees>第三步:修改节点及其属性的值/载入XMLXmlDocument xdoc = new XmlDocument();xdoc.Load(Server.MapPath("data.xml"));//获取<Employees>节点中的所有子节点XmlNodeList nodeList = xdoc.SelectSingleNode("Employees").ChildNodes;//遍历所有子节点foreach (XmlNode xn in nodeList){//如果节点的属性值为张三疯if (xn.Attributes["name"].Value == "张三疯")//则修改成为xn.Attributes["name"].Value = "张三丰";//继续遍历该节点foreach (XmlNode n in xn.ChildNodes){//如果节点的名称为authorif ( == "author"){//则修改文本n.InnerText = "张无忌";}}}}xdoc.Save(Server.MapPath("data.xml"));///////////////////////////////////////////////////////////////////// /////////////////结果:将原来的所有结点的信息都修改了,xml的内容如下,<?xml version="1.0"encoding="gb2312"?><Employees><Node name="张三丰"favor="论剑"><title>太极功夫</title><author>张无忌</author><price>20.8</price></Node><Node name="张三丰"favor="论剑"><title>太极功夫</title><author>张无忌</author><price>20.8</price></Node><Node name="如来"favor="论棍"><title>狂疯棍法</title><author>高手</author><price>123.4</price></Node></Employees>4,修改结点(添加结点的属性和添加结点的自结点):XmlDocument xdoc = new XmlDocument();xdoc.Load(Server.MapPath("data.xml"));//获取根节点外的所有子结点XmlNodeList nodeList = xdoc.SelectSingleNode("Employees").ChildNodes;foreach (XmlNode xn in nodeList){//给点节添加一个新属性XmlElement xe = xn as XmlElement;xe.SetAttribute("test", "111111");//创建一个子节点XmlElement xeSub = xdoc.CreateElement("flag");xeSub.InnerText = "1";//将新子结点添加到元素中xe.AppendChild(xeSub);}xdoc.Save(Server.MapPath("data.xml"));///////////////////////////////////////////////////////////////////// /////////////////结果:每个结点的属性都添加了一个,子结点也添加了一个,内容如下:<?xml version="1.0"encoding="gb2312"?><Employees><Node name="张三丰"favor="论剑"test="111111"><title>太极功夫</title><author>张无忌</author><price>20.8</price><flag>1</flag></Node><Node name="张三丰"favor="论剑"test="111111"><title>太极功夫</title><author>张无忌</author><price>20.8</price><flag>1</flag></Node><Node name="如来"favor="论棍"test="111111"><title>狂疯棍法</title><author>高手</author><price>123.4</price><flag>1</flag></Node></Employees>5,删除结点中的某一个属性:XmlDocument xdoc = new XmlDocument();xdoc.Load(Server.MapPath("data.xml"));XmlNodeList nodeList = xdoc.SelectSingleNode("Employees").ChildNodes;foreach (XmlNode xn in nodeList){//删除一个属性favorXmlElement xe = xn as XmlElement;xe.RemoveAttribute("favor");foreach (XmlNode n in xn.ChildNodes){XmlElement x2 = n as XmlElement;//如果找到名为flag的结点,则删除if ( == "flag"){xn.RemoveChild(n);}}}xdoc.Save(Server.MapPath("data.xml"));///////////////////////////////////////////////////////////////////// /////////////////]结果:删除了结点的一个属性和结点的一个子结点,内容如下:<?xml version="1.0"encoding="gb2312"?><Employees><Node name="张三丰"test="111111"><title>太极功夫</title><author>张无忌</author><price>20.8</price></Node><Node name="张三丰"test="111111"><title>太极功夫</title><author>张无忌</author><price>20.8</price></Node><Node name="如来"test="111111"><title>狂疯棍法</title><author>高手</author><price>123.4</price></Node></Employees>。