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

时间:2021-05-08 19:14:04

一:XML文档

了解xml文档。

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

利用代码来创建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文件。

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

---->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");

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

--->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);
}
}
}

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