使用.NET读取XML文件
生活随笔
收集整理的這篇文章主要介紹了
使用.NET读取XML文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文中我將介紹在ASP.NET應用程序中如何讀取XML文件,這是一個十分有用的技巧。使用這個技巧,我們能夠定制我們的應用程序的配置文件,也可以讀取那些保存在XML文件中的數據。
概論
下面的代碼將使用XmlTextReader對象將磁盤文件中的數據讀取到XmlDocument對象中。XmlTextReader對象在功能上和StreamReader及BinaryReader對象十分相似,只不過它是專為讀取XML文件而特別設計的。除此以外,XmlTextReader對象還有其他一些與XMl相關的特性。例如,代碼中使用到的WhitespaceHandling屬性告訴應用程序不要為XML文件中多余的空格建立節點。
下面的代碼使用XmlTextReader對象的DocumentElement屬性來查找XML文檔的樹狀表達形式的根節點。之后,遞歸地調用AddWithChildren方法將將節點及它的子節點一同添加到listbox中。
下面的代碼還包含了屬性的處理。屬性節點并不包含在一個XmlDocument對象的節點的子節點集合中。因而,你只能使用XmlNode對象的Attributes屬性獲得屬性節點集合。獲取了屬性節點集合后,代碼使用XmlNamedNodeMap對象來保存這個集合。這個對象能夠保存任何類型的XmlNode對象的任何集合。
代碼列表
private void btnLoad_Click(object sender, System.EventArgs e)
{
XmlTextReader reader = new XmlTextReader(
Server.MapPath("mycompany.xml"));
reader.WhitespaceHandling = WhitespaceHandling.None;
XmlDocument xmlDoc = new XmlDocument();
//將文件加載到XmlDocument對象中
xmlDoc.Load(reader);
//關閉連接
reader.Close();
//向listbox中添加代表文檔的元素
lbNodes.Items.Add("XML Document");
//查找根節點,并將它及它的子節點一同添加到listbox中
XmlNode xnod = xmlDoc.DocumentElement;
AddWithChildren(xnod,1);
}
private void AddWithChildren(XmlNode xnod, Int32 intLevel)
{
//將節點及它的子節點一同添加到listbox中
//intLevel 控制縮進的深度
XmlNode xnodWorking;
String strIndent = new string('' '',2 * intLevel);
//如果節點有值,讀取它的值
string strValue = (string) xnod.Value;
if(strValue != null)
{
strValue = " : " + strValue;
}
//將節點的詳細信息添加到ListBox中
lbNodes.Items.Add(strIndent + xnod.Name + strValue);
//如果是元素節點,獲取它的屬性
if (xnod.NodeType == XmlNodeType.Element)
{
XmlNamedNodeMap mapAttributes = xnod.Attributes;
//將節點屬性添加到ListBox中
foreach(XmlNode xnodAttribute in mapAttributes)
{
lbNodes.Items.Add(strIndent + " " + xnodAttribute.Name +
" : " + xnodAttribute.Value);
}
//如果還有子節點,就遞歸地調用這個程序
if(xnod.HasChildNodes)
{
xnodWorking = xnod.FirstChild;
while (xnodWorking != null)
{
AddWithChildren(xnodWorking, intLevel +1);
xnodWorking = xnodWorking.NextSibling;
}
}
}
}
}
總結
以上是生活随笔為你收集整理的使用.NET读取XML文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MEncoder 使用实例
- 下一篇: 区分JavaScript中的undefi