zoukankan      html  css  js  c++  java
  • 转载:xml 相关的类XmlTextReader ,XmlDocument

    本文介绍3个XML的基本应用实例,旨在带领你快速步入XML编程世界。实例包括:在.NET中使用XML、读取XML文件,插入数据到XML文档中。 
      在.NET中使用XML 

      如果使用过MSXML3,那么在.NET应用程序中使用XML将是一个相当简单的过程。即时没有接触过MSXML3,也不要紧,你会发现使用.NET平台提供的相关类也是很容易的一件事情。 

      有两种主要API可用于访问建立在XML文档中的数据,它们包括只向前的无缓冲存取以及随机存取,而且自始至终都使用到文档对象模型DOM。有关这2个API的类位于System.XML集合中。 

      如果要快速有效地访问XML文档中的数据,就需要使用XmlTextReader类。这个类采取"拉"模式处理方式,要比简单XML API(SAX)中的"推"模式处理方式优越许多。使用XmlTextReader类之前首先要引用System.Xml集合,在C#中是使用"using"关键字来引用,在Visual Basic中则是使用"imports"关键字。引用了集合后,就可以象下面的代码所示开始例示读操作了: 


    XmlTextReader reader = new XmlTextReader(pathToXmlDoc); 
    int elementCount = 0; 
    while (reader.Read()) { 
    if (reader.NodeType == XmlNodeType.Element) { 
    elementCount++; 

    }


      XmlTextReader类中有几个不同的构造器,上面所示的负责接收一个XML文件的路径作为字符串参数。

      虽然只向前的"拉"模式处理相当有效率,但它却是只读的,所以不能允许执行插入、删除或者更新XML文档节点的操作。当需要对XML文档施加更多的控制并需要更大的灵活性时,我们可以看一看文档对象模型DOM。DOM API的功能将XML文档中的每一个节点装载到一个树形结构中,看起来就象是一个"家谱"。内存中有了这个结构,随机存取XML文档中的不同节点就变得可行。 


    开始创建DOM树形结构前,首先引用System.Xml集合,然后例示XmlDocument类: 


    XmlDocument xmlDoc = new XmlDocument(); 
    xmlDoc.Load(pathToXmlDoc); 
    XmlNode root = xmlDoc.DocumentElement; 


      通过使用XmlDocument类中的相关方法,在树形结构中添加节点的操作可以很容易地完成。下面的例子演示了如何从一个文件中装载XML,然后在根节点root下添加一个子元素以及它的相关属性: 


    XmlDocument xmlDoc = new XmlDocument(); 
    XmlDoc.Load(pathToXmlDoc); 
    XmlElement root = xmlDoc.DocumentElement; 
    XmlElement newNode = doc.createElement("newNode"); 
    newNode.SetAttribute("id","1"); 
    root.AppendChild(newNode); 


      以上代码执行后,将产生下面的XML文档: 


    <?xml version="1.0"?> 
    <root> 
    <newNode id="1"/> 
    </root> 


      当需要将包含XML的字符串装载进DOM中时,可以使用XmlDocument类的LoadXml()方法。装载进去后,就可以按照下面的方式操作XML: 


    string myXml = "<root><someNode>Hello</someNode></root>"; 
    XmlDocument xmlDoc = new XmlDocument(); 
    xmlDoc.LoadXml(myXml); 
    //....manipulation or reading of the nodes can occur here
  • 相关阅读:
    HDU 5938 Four Operations 【贪心】(2016年中国大学生程序设计竞赛(杭州))
    HDU 5935 Car 【模拟】 (2016年中国大学生程序设计竞赛(杭州))
    HDU 5934 Bomb 【图论缩点】(2016年中国大学生程序设计竞赛(杭州))
    HDU 5933 ArcSoft's Office Rearrangement 【模拟】(2016年中国大学生程序设计竞赛(杭州))
    HDU 5929 Basic Data Structure 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
    【转】LaTeX 符号命令大全
    HDU 5922 Minimum’s Revenge 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
    HDU 5927 Auxiliary Set 【DFS+树】(2016CCPC东北地区大学生程序设计竞赛)
    数据结构之稀疏矩阵
    C++中引用(&)的用法和应用实例
  • 原文地址:https://www.cnblogs.com/zhangzheny/p/638874.html
Copyright © 2011-2022 走看看