C#操作XML(二)

一、用DOM的方式去创建XML

  上一篇讲了如何用DMO的方式读一个XML,这一片就见一下如何用DOM的方式写一个XML。不过,用DOM写XML本身并不是一个好主意,因为DOM方式本身的废话就超多,做一个简单的事情就需要好几句语句,但是作为一个基本的方式还是有必要了解一下。

1. 创建无Namespace的XML

  a. 如果先写出这样一个XML:

<?xml version="1.0" encoding="UTF-8"?>
<persons>
    <person>
        <firstName>Wang</firstName>
        <lastName>Joe</lastName>
        <address>http://www.baidu.com</address>
    </person>
</persons>

    需要这样一大段代码:

//创建XML
XmlDocument doc = new XmlDocument();
XmlElement persons = doc.CreateElement("persons");
doc.AppendChild(persons);
XmlElement person = doc.CreateElement("person");
persons.AppendChild(person);
XmlElement firstName = doc.CreateElement("firstName");
person.AppendChild(firstName);
firstName.InnerText = "Wang";
XmlElement lastName = doc.CreateElement("lastName");
person.AppendChild(lastName);
lastName.InnerText = "Joe";
XmlElement address = doc.CreateElement("address");
person.AppendChild(address);
address.InnerText = "http://wwww.baidu.com";

//打印结果
using (XmlWriter writer = XmlWriter.Create(Console.Out))
{
     doc.WriteTo(writer);
}

    分析一下,在DOM方式下创建任何一个XML节点都必须使用XmlDocument的对应的Create方法创建,然后再添加到对应位置,这就是DOM方式最麻烦的地方。

    看看运行结果:

<?xml version="1.0" encoding="gb2312"?><persons><person><firstName>Wang</firstName><lastName>Joe</lastName><address>http://wwww.baidu.com</address></person></persons>

    这个XML因为未被格式化很难读,那么怎么才能得到格式化的XML呢?

  b. 格式化

   添加以下代码,就可以得到格式化好的XML了:   

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true; //缩进
using (XmlWriter writer = XmlWriter.Create(Console.Out, settings))
{
    doc.WriteTo(writer);
}

2. 创建有Namespace的XML

  如果想要创建有namespace的XML,怎么办呢?

  很简单,换一个重载就可以了,在创建节点的时候用带有namespace的重载就可以了。  

XmlDocument doc = new XmlDocument();
const string ns = "namespace";
XmlElement persons = doc.CreateElement("v", "persons", ns);
doc.AppendChild(persons);
XmlElement person = doc.CreateElement("v", "person", ns);
persons.AppendChild(person);
XmlElement firstName = doc.CreateElement("v", "firstName", ns);
person.AppendChild(firstName);
firstName.InnerText = "Wang";
XmlElement lastName = doc.CreateElement("v", "lastName", ns);
person.AppendChild(lastName);
lastName.InnerText = "Joe";
XmlElement address = doc.CreateElement("v", "address", ns);
person.AppendChild(address);
address.InnerText = "http://wwww.baidu.com";
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(Console.Out, settings))
{
    doc.WriteTo(writer);
}

  运行就可以得到带有namespce的XML:

<?xml version="1.0" encoding="UTF-8"?>
<v:persons xmlns:v="namespace">
    <v:person>
        <v:firstName>Wang</v:firstName>
        <v:lastName>Joe</v:lastName>
        <v:address>http://www.baidu.com</v:address>
    <v:/person>
<v:/persons>

二、用DOM的方式去修改XML

时间: 2024-10-09 14:09:56

C#操作XML(二)的相关文章

JavaScript操作XML(二)

上一篇介绍了XML的结构以及节点之间的关系这一篇介绍浏览器内建的XML解析器以及JavaScript是如何加载XML的. 大多数浏览器都有读取和操作 XML 的内建 XML 解析器. 解析器(XML Parser)把 XML 转换为 JavaScript 可访问的对象. 解析器把 XML 载入内存,然后把它转换为可通过 JavaScript 访问的 XML DOM 对象. 微软的 XML 解析器与其他浏览器中的解析器之间,存在一些差异.微软的解析器支持 XML 文件和 XML 字符串(文本)的加

JavaScript操作XML工作记录

JavaScript操作XML (一) JavaScript操作XML是通过XML DOM来完成的.那么什么是XML DOM呢?XML DOM 是: 用于 XML 的标准对象模型 用于 XML 的标准编程接口 中立于平台和语言 W3C 的标准 XML DOM 定义了所有XML 元素的对象和属性,以及访问它们的方法(接口).也就是说:XML DOM 是用于查询.添加.修改.删除XML 元素的标准. 在继续之前,我们先来了解一下XML的定义.请看下面的 XML 文件 (books.xml):<?xm

delphi 操作 XML (二)

在装有Win7 32位系统的台式机上 先卸载旧驱动,再重新安装. 对设备管理器里的U转串口设备从本地更新驱动,选择下图文件 系统弹出红色提示框(是否安装XXXX驱动),选择安装,随后该设备由无法启动变为工作正常. 在Win8 64位系统上 安装驱动后,出现下图情况,设备无法启动(错误代码10) 选择08年的驱动后,串口恢复正常. 总结 这些驱动有很多不兼容的,特别是在高级Windows版本或64位系统上,解决的思路就是多尝试安装各种版本,并根据串口状态调整安装策略. delphi 操作 XML

第一百二十六节,JavaScript,XPath操作xml节点

第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准DOM去查找XML中的节点方式,大大降低了查找难度,方便开发者使用.但是,DOM3级以前的标准并没有就XPath做出规范:直到DOM3在首次推荐到标准规范行列.大部分浏览器实现了这个标准,IE则以自己的方式实现了XPath. 一.IE中的XPath 在IE8及之前的浏览器,XPath是采用内置基于A

XML编程总结(二)——使用DOM接口操作xml

(二)使用DOM接口操作xml DOM解析器将整个XML文档加载到内存中,使用DOM模型对XML文档在内存中建模.DOM解析器被称为DocumentBuilder,它位于javax.xml.parsers包下.下面是使用DOM对xml文档进行CRUD操作的演示. 测试类代码:Source和Result接口的使用,将内存中xml模型输出 1 public class DomTest { 2 private Document document; 3 4 @Before 5 public void s

Delphi 操作 XML(一)

一.欢迎 本帮助文件提供从SimDesign BV的NativeXml组件的信息. 二.购买NativeXml! NativeXml现在是开源的,但支持是仅专门适用于购买NativeXml的客户. 您可以通过此链接购买NativeXml:http://www.simdesign.nl/xml.html 价格:29.95欧元 采购NativeXml的优势: 两年的通过电子邮件或特殊的"NativeXml Source"论坛支持,接收测试和修正,并从"NativeXml Sour

php操作xml

Php 操作xml 一.使用simpleXml 操作xml (1)     创建xml $xml = <<<xml <?xml encoding=’utf-8’ version=’1.0’?> Xml; $s_xml = new SimpleXMLElement($xml); (2)     生成xml  $s_xml->asXML(‘test.xml’); (3)     载入xml    $sxml = simplexml_load_file(‘test.xml’)

java操作XML文件

XML文件可以用来作为一种小型数据库存在,但更多时候在项目中都是用来当成配置文件用的,也就避免不了对XML文件的增上改查操作. 在java中,解析XML文件的方式大致分为两种:DOM解析,SAX解析 先来说DOM解析方式:xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容. 用的较为多的是Dom4j工具(非官方)解析,简单介绍下Dom4j的使用,具体API文档请下载

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"); //获取节点下所有直接子节点Xm

flex 操作xml 实现增删改查 .

一 在介绍Flex中操作XML之前,首先简单介绍下XML中的基本术语. 元素:XML中拥有开始标签和结束标签的这一块称为“元素”    节点:把XML元素与文本结合起来统称为节点    根节点:位于整个XML文当顶端的节点    文本节点:包含文本的节点    属性:元素的组成部分,以键/值形式放在元素标签内 用一个例子来说明 view plaincopy to clipboardprint?<root_node><!--这是一个根节点也是一个元素-->            &l