1. 以后再写代码的时候,先从中间层|接口|协议开始入手。
  2. 在写XML时注意的事情:
    1. 在EditPlus中,Tab是缩进
    2. 在头文件中的编码格式是"utf-8"是,在Editplus中保存时要注意保存下的格式,编写时的格式与保存时的格式要一致,否则会报错
    3. 拖到浏览器中检查是否有错

3、

namespace XmlReadAndWrite

{

class
Program

{

static
void Main(string[] args)

{

XmlWrite();

XmlRead();

Console.ReadKey();

}

private
static
void XmlRead()

{

//1、通过静态类的加载方法实例化Xml

XDocument xdoc = XDocument.Load("1.xml");

//2、获得xml文档的根元素【一级节点--A级节点】

XElement root = xdoc.Root;

//3、根元素下会有很多直接子元素,会是一个子元素集合,用IEnumerable类的对象接受返回值

//实现IEnumerable接口,使本类可以被迭代(foreach),公开枚举数,该枚举数支持在非泛型集合上进行简单迭代

//二级节点--AB+【由root节点得到B节点集】

IEnumerable bs = root.Elements();

//4、遍历B级节点

foreach (XElement b in bs)

{

Console.WriteLine(b.Name + "==" + b.Attribute("id").Value);

//5、有B得到得到C级节点,要展示的信息都在C级

//因为B级节点下有许多C级节点,C级可能不同,此时Element()方法可以用参数指明元素

foreach (XElement c in b.Elements())

{

//显示子元素的名字和属性id的值

 

//显示子元素的名字

Console.WriteLine(c.Element("name").Value);

//显示子元素的性别

Console.WriteLine(c.Element("gender").Value);

//显示子元素的年龄

Console.WriteLine(c.Element("age").Value);

Console.WriteLine("=========================================");

}

}

}

 

private
static
void XmlWrite()

{

//1、XDocument所在namespace:using System.Xml.Linq;

//2、XML文档声明语句

XDocument xdoc = new
XDocument();

//3、元素声明语句,XElement有一个参数的构造函数,参数类型是XName,但可以用string,"school"

//该元素用作根节点[A]

XElement root = new
XElement("school");//根节点

 

//4、再声明一个元素

//该元素用作二级节点[B]

XElement myclass=new
XElement("class");

myclass.SetAttributeValue("id","1115就业班");

//5、再声明一个元素

//该元素用作三级节点[C]

XElement student = new
XElement("student");//子节点

 

 

//6、XML写的操作用Set***

student.SetAttributeValue("id", "9527");//student元素设置属性

student.SetElementValue("name", "周星驰");//student元素设置元素

student.SetElementValue("age", "50");//student元素设置元素

student.SetElementValue("gender", "男");//student元素设置元素

//7、组织xml树

//从后往前,三级节点加到二级节点;二级节点加到根节点,根再加到xdoc上

myclass.Add(student);

root.Add(myclass);

xdoc.Add(root);

//8、最后

xdoc.Save("1.xml");

Console.WriteLine("OK");

}

}

}

最新文章

  1. 【leetcode】 Permutation Sequence (middle)
  2. Django model 中meta options
  3. PHP 常用字符串函数整理
  4. 用opencv画矩形打上马赛克Mosaic
  5. 关于PHPstorm 使用技巧
  6. POJ 3481 Double Queue STLmap和set新学到的一点用法
  7. MongoDB的一些用法(转藏)
  8. 微信小程序(一)基本知识初识别
  9. MPLS LDP随堂笔记1
  10. 201521123011 《Java程序设计》第13周学习总结
  11. Mybatis通过注解方式实现批量插入数据库 及 常见的坑
  12. VS打开项目 提示Asp.net4.0未在web服务器上注册的解决方案
  13. LinkedList阅读
  14. Python【每日一问】12
  15. Numpy与Matplotlib
  16. 简单的三道shell例题
  17. 动手动脑(&课后实验):生成随机数,函数的重载
  18. RAD Studio August 2018 Roadmap
  19. mysql 设置多个字段聚合自增
  20. sql 用Group by分组后,取每组的前几条记录

热门文章

  1. Hive-分组之后取前n个
  2. 活锁(livelock) 专题
  3. List.Sort() 小小技巧--- 从大到小排列
  4. DELPHI XE2 采用 JSON 的方式来序列化对象
  5. Qt 开发WEB Services客户端代码(使用gSoap)
  6. C++的标准库函数默认都是操作字节,而不是字符,非常痛苦,所以引入了u16string和u32string(Linux上的wchar_t是32位的原因,utf16对unicode的支持是有缺陷的)good
  7. 使用sikuli软件进行自动化编程
  8. 如何调整cookie的生命周期
  9. 【python3两小时根本不够】入门笔记04:线程+Lock安全同步
  10. 六种 主流ETL 工具的比较(DataPipeline,Kettle,Talend,Informatica,Datax ,Oracle Goldengate)