操作XML的类
.NET Framework提供了许多名称空间和类,使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文档中的所有节点
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));
}
}