.NET平台开发必须掌握的XML知识(一)

简介:
using System;
using System.IO;
using System.Xml;

//XmlNode.NextSibling 属性 作用:获取紧接在该节点之后的节点。属性值:下一个 XmlNode。如果没有下一个节点,则返回 空引用(在 Visual Basic 中为 Nothing)。 
//public virtual XmlNode FirstChild { get; }
public class Sample
{
    public static void Main()
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(@"C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\XMLFile1.xml");//把XML文档装入内存
        
       //XmlDocument.DocumentElement属性返回一个XmlElement类的实例,表示XmlElement的根节点
        XmlNode currNode = doc.DocumentElement.FirstChild;//public virtual XmlNode FirstChild { get; }
        Console.WriteLine("First book...");               //该属性返回一个XmlNode对象(或者实例)
        Console.WriteLine(currNode.OuterXml);
        XmlNode nextNode = currNode.NextSibling; //XmlNode nextNode = doc.DocumentElement.NextSibling;这样写会产生异常
        Console.WriteLine("\r\nSecond book...");
        Console.WriteLine(nextNode.OuterXml);
        Console.WriteLine();
        Console.WriteLine(doc.DocumentElement.OuterXml);//根也是节点,所以也会把根节点也打印出来
        Console.WriteLine();
        Console.WriteLine(doc.OuterXml);//说明doc对象相当于整个XML文档,所以此时会全部打印出来
        Console.WriteLine();
        Console.WriteLine(doc.FirstChild.OuterXml); //因为doc对象相当于整个XML文档
        Console.WriteLine();
        Console.WriteLine(doc.LastChild.OuterXml);  //因为doc对象相当于整个XML文档
    }
}

//XmlDocument.DocumentElement 属性 作用:获取文档的根 XmlElement。属性值:表示 XML 文档树的根的 XmlElement。如果不存在根,则返回 空引用(在 Visual Basic 中为 Nothing)。 
//public XmlElement DocumentElement { get; }
//public class Sample
//{
//    public static void Main()
//    {
//        //Create the XmlDocument.
//        XmlDocument doc = new XmlDocument();
//        //用指定的字符串加载XML文档
//        doc.LoadXml("<?xml version='1.0' ?>" +
//                    "<book genre='novel' ISBN='1-861001-57-5'>" +
//                    "<title>Pride And Prejudice</title>" +
//                    "</book>");
//        //Display the document element.
//        Console.WriteLine(doc.DocumentElement.OuterXml);
//    }
//}

//XmlNode.FirstChild 属性 作用:获取节点的第一个子级。属性值:节点的第一个子级。如果没有这样的节点,则返回 空引用(在 Visual Basic 中为 Nothing)。
//public virtual XmlNode FirstChild { get; }
//public class Sample
//{
//    public static void Main()
//    {
//        XmlDocument doc = new XmlDocument();
//        doc.LoadXml("<book ISBN='1-861001-57-5'>" +
//                    "<title>Pride And Prejudice</title>" +
//                    "<price>19.95</price>" +
//                    "</book>");
//        XmlNode root = doc.FirstChild;                  //root {Element, Name="book"}  System.Xml.XmlNode {System.Xml.XmlElement}
//        //XmlNode root = doc.DocumentElement.FirstChild;//root  {Element, Name="title"} System.Xml.XmlNode {System.Xml.XmlElement}
//        Console.WriteLine("Display the title element...");
//        Console.WriteLine(root.FirstChild.OuterXml);
//        //Console.WriteLine(root.OuterXml);
//        Console.WriteLine(doc.OuterXml);//打印全部
//        Console.ReadKey();
//    }
//}

//XmlNode.OuterXml 属性 作用:获取表示此节点及其所有子节点的标记。属性值:包含此节点及其所有子节点的标记。
//public virtual string OuterXml { get; }
//public class Sample
//{
//    public static void Main()
//    {
//        XmlDocument doc = new XmlDocument();
//        doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
//                    "<title>Pride And Prejudice</title>" +
//                    "</book>");
//        XmlNode root = doc.DocumentElement;
//        // OuterXml includes the markup of current node.
//        Console.WriteLine("Display the OuterXml property...");
//        Console.WriteLine(root.OuterXml);//XmlNode.OuterXml属性的作用:获取表示此节点及其所有子节点的标记
//        // InnerXml does not include the markup of the current node.
//        // As a result, the attributes are not displayed.
//        Console.WriteLine();
//        Console.WriteLine("Display the InnerXml property...");
//        Console.WriteLine(root.InnerXml);//XmlNode.InnerXml属性的作用:获取和设置仅代表该节点的子节点的标记
//    }
//}

//XmlNode.LastChild 属性 作用:获取节点的最后一个子级。 属性值:节点的最后一个子级。如果没有这样的节点,则返回 空引用(在 Visual Basic 中为 Nothing)。 
//public virtual XmlNode LastChild { get; }
//public class Sample {
//  public static void Main() {
//    XmlDocument doc = new XmlDocument();
//    doc.LoadXml("<book ISBN='1-861001-57-5'>" +
//                "<title>Pride And Prejudice</title>" +
//                "<price>19.95</price>" +
//                "</book>");
//    XmlNode root = doc.FirstChild;
//    Console.WriteLine("Display the price element...");
//    Console.WriteLine(root.LastChild.OuterXml);
//  }
//}

//XmlText.Value 属性 作用:获取或设置节点的值。XmlDocument和XmlElement类都没有重写此属性
//public override string Value { get; set; }
// 它是重写XmlNode类的XmlNode.Value属性  public virtual string Value { get; set; }

//XmlNode.Name 属性 作用:当在派生类中被重写时,获取节点的限定名。属性值:节点的限定名。返回的名称取决于节点的 NodeType: 
//public abstract string Name { get; }  这个属性是抽象属性,只能被重写
//XmlDocument、XmlElement、XmlText这三个类都重写了此属性
//public abstract class XmlNode : ICloneable, IEnumerable, IXPathNavigable
//public abstract class XmlLinkedNode : XmlNode
//public class XmlElement : XmlLinkedNode
//说明XmlElement类也派生自XmlNode
//public abstract class XmlNode : ICloneable, IEnumerable, IXPathNavigable
//public class XmlDocument : XmlNode
//说明XmlDocument类的基类是XmlNode类
//public abstract class XmlNode : ICloneable, IEnumerable, IXPathNavigable
//public abstract class XmlLinkedNode : XmlNode
//public abstract class XmlCharacterData : XmlLinkedNode
//public class XmlText : XmlCharacterData
//说明XmlText类也派生自XmlNode
//XmlElement类重写(public override XmlNode NextSibling { get; })了XmlNode类的NextSibling属性,但没重写XmlNode.FirstChild属性和XmlNode.LastChild 属性 
//XmlDocument类和XmlText类都没重写XmlNode.FirstChild属性、XmlNode.LastChild属性、XmlNode.NextSibling属性
//但这三个属性都是虚拟的,所以可以继承,所以这三个虚拟属性都可以继承使用
//XmlDocument、XmlElement、XmlText这三个类都继承了XmlNode.OuterXml属性,所以可以直接用
XMLFile1.xml
<?xml version="1.0" encoding="utf-8"?>
<stories>
  <story>
    <title>A House in Aungier Street</title>
    <author>
      <name>Sheridan Le Fanu</name>
      <nationality>Irish</nationality>
    </author>
    <rating>eerie</rating>
  </story>
  <story>
    <title>The Signalman</title>
    <author>
      <name>Charles Dickens</name>
      <nationality>English</nationality>
    </author>
    <rating>atmospheric</rating>
  </story>
  <story>
    <title>The Turn ofthe Screw</title>
    <author>
      <name>Henry James</name>
      <nationality>American</nationality>
    </author>
    <rating>a bit dull</rating>
  </story>
  <story>
    <title>lannanzaixian</title>
    <author>
      <name>litao</name>
      <nationality>China</nationality>
    </author> 
    <rating>exciting</rating>
  </story>
</stories>
 









本文转自terryli51CTO博客,原文链接:http://blog.51cto.com/terryli/519419 ,如需转载请自行联系原作者

相关文章
|
1月前
|
SQL 开发框架 数据可视化
企业应用开发中.NET EF常用哪种模式?
企业应用开发中.NET EF常用哪种模式?
|
8天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
|
20天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
28天前
|
数据采集 存储 监控
.NET智慧手术室管理平台源码
术前访视记录单、手术风险评估表、手术安全核查表、自费药品或耗材、麻醉知情同意书、麻醉记录单、分娩镇痛记录单、麻醉复苏单、术后镇痛记录单、术后访视记录单、压伤风险评估量表、手术清点记录单、护理记录单、输血护理记录单。
28 0
|
1月前
|
数据安全/隐私保护 Windows
.net三层架构开发步骤
.net三层架构开发步骤
11 0
|
1月前
深入.net平台的分层开发
深入.net平台的分层开发
52 0
|
1月前
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
174 2
|
2月前
|
开发框架 前端开发 .NET
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
为了便于大家查找,特将之前开发的.Net Core相关的五大案例整理成文,共计440页,32w字,免费提供给大家,文章底部有PDF下载链接。
33 1
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!

相关实验场景

更多