XML学习手册-xml文件怎么打开

XML学习手册-xml文件怎么打开
  1. 生成xml;

  • 新建一个CreateXml

  • 创建一个简单的xml;

  • 1///<summary>

  • 2///创建简单的xml并保存

  • 3///</summary>

  • 4publicstaticvoidCreateElement()

  • 5{

  • 6XDocumentxdoc=newXDocument(

  • 7newXDeclaration("1.0","utf-8","yes"),

  • 8newXElement("root",

  • 9newXElement("item","1"),

  • 10newXElement("item","2")

  • 11));

  • 12xdoc.Save(Path);

  • 13}

·当xml有很多项时,我们就需要利用注释加以区别,通过linq to xml我们一样可以在其中添加注释

XDocumentdoc=newXDocument(newXDeclaration("1.0","utf-8","yes"),newXComment("提示"),newXElement("item","asd"));

很多时候我们都会将数组之类的类型转换成xml以便保存进永久性存储介质中,所以下面我们也简单的举了一个例子,将数组转换成xml

XElementxele=newXElement("Root",fromiteminsselectnewXElement("item",item.ToString()));

有时我们不想创建新的子项去保存数据,而是使用属性的方式去保存。理所应当,linq to xml一样也支持这个功能,下面我们可以通过简单的语句去实现它。

XAttributexa=newXAttribute("V2","2");XElementxele=newXElement("Root",newXElement("Item",newXAttribute("V1","1"),xa1));

对于一些企业级的xml格式,会非常的严格。特别是在同一个xml中可能会出现重复的项,但是我们又想区分开来,这个时候我们可以利用命名空间将他们分开

XElementxele=newXElement("{http://www.xamarin-cn.com}Root",newXElement("Item","1"),newXElement("{http://www.baidu.com}Item",2));

节点前后插入新的节点

XElementxele=XElement.Load(Path);varitem=(fromeleinxele.Elements("Item")whereele.Value.Equals("Item2")selectele).SingleOrDefault();if(item!=null){XElementnele=newXElement("NItem","NItem");XElementnele2=newXElement("BItem","BItem");item.AddAfterSelf(nele);item.AddBeforeSelf(nele2);xele.Save(Path);}

通过SetAttributeValue去添加新的属性或者修改现有属性

XElementxele=XElement.Parse(@"<?xmlversion='1.0'encoding='utf-8'?><Root><!--前面的注释--><Itemv1='1'v2='2'>Item1</Item><!--后面的注释--><Itemv1='1'v2='2'v3='3'>Item2</Item></Root>");varitem=(fromeleinxele.Elements("Item")whereele.Value.Equals("Item2")selectele).SingleOrDefault();item.SetAttributeValue("v3","3");

修改节点的值通过SetValue即可做到,但是有时涉及到子节点,而我们想一次性全部替换掉,那么我们就需要使用ReplaceWith

删除指定的属性Remove;

通过Descendants获取最底的节点,然后使用Ancestors获取所有的父级节点,而AncestorsAndSelf则表示包含本身。

通过ElementsBeforeSelf获取该节点之前的同级节点,当然我们还可以传入参数作为限制条件。这里我们通过查询获取了SubItem这个节点,并显示该节点之前的同级节点。

关键就是ChangingChanged事件,其次就是在事件中判断事件的来源;

数据量大时进行流读取,通过XmlReaderCreate静态方法打开xml文件,并通过Read一个节点的进行读取,并判断该节点的类型

推荐阅读