游戏技术文章

LINQ TO XML初步了解

时间:2017-4-24 13:35:52  作者:棋牌资源网  来源:棋牌资源网  查看:8853  评论:0
内容摘要:最近简单的学习了一下LINT TO XML,写篇博客在这,方便以后查看~~1、常用到的类  XmlDocument --    文档(xml文件)    XmlElement    --   &nbs...
最近简单的学习了一下LINT TO XML,写篇博客在这,方便以后查看~~

1、常用到的类

  XmlDocument --    文档(xml文件)
    XmlElement    --    元素(节点)
    XmlAttribute    --    属性(节点内容)
    XNamespace  --    命名空间(xmlns)
  XDeclaration --  创建XML文件的时候会默认生成 "1.0","UTF-8","yes"
 
2、创建xml文件(Save)
复制代码
private static void Xml()
        {
            XDocument xml = new XDocument();//描述会自动创建  Encoding为UTF-8   XDeclaration dec=new XDeclaration("1.0","UTF-8","yes");
            XNamespace xmln = "SB-GAVIN-AA";//添加xml命名空间,xmlns
            XNamespace xm = "GAVIN-AA";
            XElement eleHead = new XElement(xmln + "Head");//创建节点,并声明该节点的命名空间为xmln
            XElement eleDetail = new XElement("name");//创建节点,若前面有声明过命名空间,不会默认继承,会添加 xmlns = ""
            XElement ele = new XElement(xm + "column");//创建节点,每个节点的命名空间可以不同
            XAttribute appearance = new XAttribute("appearance", "nice"); //创建属性
            XAttribute name = new XAttribute("name", "Hao"); //创建属性
            xml.Add(eleHead); //添加根节点
            eleHead.Add(eleDetail); //添加子节点
            eleDetail.Add(ele); //添加子节点
            eleDetail.Add(appearance); //子节点添加属性
            xml.Save("3.xml"); //保存文件,保存路径在Debug目录下
        }
复制代码

 

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<Head xmlns="SB-GAVIN-AA">
  <name appearance="nice" xmlns="">
    <column xmlns="GAVIN-AA" />
  </name>
</Head>
 
3、XML的读取
复制代码
private static void LoadXml()
        {
            XDocument xdoc = XDocument.Load(@"..\Debug\xml\3.xml");//.. -------> .....\bin\
            List<XElement> ele = new List<XElement>();
            string Apprearance = "nice";

            XNamespace xmln = "SB-GAVIN-AA";
            XNamespace xm = "GAVIN-AA";
            XElement e = xdoc.Element(xmln + "Head");//元素含有xmlns时,添加XNamespace来定位节点。没有xmlns则不用添加XNamespace
            foreach (XElement item in e.Elements())
            {
                //判断这个元素的名字是不是name,如果是name,看内容是不是nameTxt
                if (item.Name.LocalName == "name")
                {
                    if (item.Attribute("appearance").Value == Apprearance)
                    {
                        //符合条件的节点,取其父级
                        ele.Add(item.Parent);
                    }
                }
            }
            foreach (XElement item in ele)
            {
                Console.WriteLine("appearance:{0}", item.Element("name").Attribute("appearance").Value);    //输出结果:appearance:nice
            }
            Console.ReadKey();
        }
复制代码

 

4、XML节点的删改

(删)原xml文件:

复制代码
<?xml version="1.0" encoding="utf-8"?>
<Head>
  <name appearance="nice">
    <column name="Hao" />
  </name>
  <column />
</Head>
复制代码
复制代码
private static void RemoveXml()
        {
            XDocument xdoc = XDocument.Load(@"..\Debug\xml\4.xml");
            XElement e = xdoc.Element("Head");//定位节点Head

            foreach (XElement xxElement in e.Elements())
            {
                if (xxElement.Name.LocalName == "column")
                {
                    xxElement.Remove();//删除根节点Head里的子节点column
                    xdoc.Save(@"..\Debug\xml\4.xml");//保存修改
                }
            }
            Console.ReadKey();
        }
    }
复制代码

删减后:

复制代码
<?xml version="1.0" encoding="utf-8"?>
<Head>
  <name appearance="nice">
    <column name="Hao" />
  </name>
</Head>
复制代码

 

(改)

复制代码
private static void updateXml()
        {
            XDocument xdoc = XDocument.Load(@"..\Debug\xml\4.xml");
            XElement e = xdoc.Element("Head");
            string att = "supnice";
            string name = "Hao";
            foreach (XElement xxElement in e.Elements())
            {
                if (xxElement.Name.LocalName == "name")
                {
                    xxElement.Name = name;//修改节点名字
                    xxElement.Attribute("appearance").Value = att;//修改appearance的属性为supnice
                    xdoc.Save(@"..\Debug\xml\4.xml");//保存修改
                }
            }
        }
复制代码

 


标签:LINQTOXML初步了解 

欢迎加入VIP,【VIP售价:只要288元永久VIP会员】畅享商业棋牌游戏程序下载,点击开通!

下载说明


☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,

☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!

☉唯一站长QQ:1004003180  [人格担保-本站注重诚信!]

☉购买建议E-mail:1004003180@qq.com   源码收购 E-mail:1004003180@qq.com    

☉本站文件解压密码  【文章内都自带解压密码,每个密码不同!】


本站提供的所有源码,均来源站长提供,仅学习交流 浙ICP备09009969号

由此产生不良后果和法律责任与本站无关,如果侵犯了您的版权,请来信告知 1004003180@qq.com 将及时更正和删除! 

Copyright © 2008-2022 棋牌资源网,你身边的棋牌资源下载站    All Rights Reserved