30天C#基础巩固----查找XML文件元素

一:XML文档

了解xml文档。

image

利用代码来创建XML文档。

            //引用命名空间+using System.Xml;
            XmlDocument xdoc=new XmlDocument();

            XmlDeclaration xdec = xdoc.CreateXmlDeclaration("1.0",
                "gb2312",null);            //设置版本信息
            xdoc.AppendChild(xdec);
            //设置节点root
            XmlElement xele = xdoc.CreateElement("root");
            xdoc.AppendChild(xele);
            //设置节点的属性id;
            XmlAttribute xatt = xdoc.CreateAttribute("id");
            xatt.Value = "ahui";      //id=ahui;
            //设置节点的文本内容。
            XmlText xtText = xdoc.CreateTextNode("aaaaaaaa");            

            xele.AppendChild(xtText);             //文本加入root节点下面。
            xele.Attributes.Append(xatt);       //属性id加入root属性下。
            xdoc.Save("1.xml");                    //保存xml文件。

image

---->Linq To Xml

            //引用命名空间,using System.Xml.Linq;
            XDocument Xdoc=new XDocument();
            XElement xele=new XElement("root","你好,世界");
            XAttribute xatt=new XAttribute("id","002");
            Xdoc.Add(xele);
            xele.Add(xatt);
            Xdoc.Save("2.xml");

image

--->XML 的查找

从xml文本中找到name=”张辉01”的,返回父节点。

    class Program
    {
        static void Main(string[] args)
        {
            #region 查找XML
            //读取本地的xml文件。
            XDocument xdoc = XDocument.Load("ahui.xml");  
            List<XElement> xele=new List<XElement>();
            SearchElementsZhanHui(xdoc.Root,xele);
            foreach (XElement item in xele)
            {
                Console.WriteLine(item.Name);
            }
            Console.ReadKey();

            #endregion
        }
        /// <summary>
        /// 查找XML文档中的name=张辉01的。
        /// </summary>
        /// <param name="ele"></param>
        /// <param name="list"></param>
        public static void SearchElementsZhanHui(XElement ele,List<XElement> list )
        {
            //首先遍历ele的所有节点
            //ele.Elements()+按文档顺序返回此元素或文档的子元素集合
            foreach (XElement item in ele.Elements())
            {
                 //判断这个元素是否为张辉01
                if (item.Name.LocalName=="name")
                {
                    if (item.Value == "张辉01")
                    {
                        list.Add(item.Parent);
                    }
                }
                //如果item里面还有子节点就递归。
                SearchElementsZhanHui(item,list);
            }
        }
    }

image

原文地址:https://www.cnblogs.com/netxiaohui/p/5554433.html