.NET Framework提供了许多名称空间和类,使XML的读取、处理和写入非常简单。介绍几个易于操作XML的类。

操作XML的类_加载

1、XmlDocument类

using System.Xml;

XmlDocument document =new XmlDocument();

Document.Load(@xmlPath);

 

2、XmlElement类

利用XmlDocumnet实例DocumentElement属性会返回一个XmlElement实例,表示XmlDocument的根节点。

XmlElement element=document.DocumentElement;

XmlElement类包含的方法和属性可以处理树的节点和属性。

操作XML的类_名称空间_02

实例:迭代XML文档中的所有节点

Books.xml

<?xml version="1.0" encoding="utf-8"?>

<books>

 

  <book>

    <title>Beginning Visual C#</title>

    <author>Karli Watson</author>

    <code>7582</code>

  </book>

 

  <book>

    <title>Professional C# 2nd Edition</title>

    <author>Simon Robinson</author>

    <code>7043</code>

  </book>

 

</books>

 

代码:

        private void button1_Click(object sender, EventArgs e)

        {

            listBox1.Items.Clear();

            //加载XML

            XmlDocument document = new XmlDocument();

            document.Load("books.xml");

 

            //递归遍历所有类型节点,错落有致显示

            RecurseXmlDocument((XmlNode)document.DocumentElement, 0);

        }

        private void RecurseXmlDocument(XmlNode root, int index)

        {

            if (root == null)

                return;

            if (root is XmlElement)

            {

                listBox1.Items.Add(root.Name.PadLeft(root.Name.Length + index));

                if (root.HasChildNodes)

                    RecurseXmlDocument(root.FirstChild, index + 2);

                if (root.NextSibling != null)

                    RecurseXmlDocument(root.NextSibling, index);

            }

            else if (root is XmlText)

            {

                string text = ((XmlText)root).Value;

                listBox1.Items.Add(text.PadLeft(text.Length + index));

            }

 

        }

 

操作XML的类_名称空间_03