不同的xml文檔構可能要用到不同的方法進行解析這裡用到的是例如<student name="張三" id="1" sex="男"/>這樣的結構進行的解析 #region Xml文件常用操作 XmlDocument doc = new XmlDocument(); //創建文檔對象 doc.Load( ...
不同的xml文檔構可能要用到不同的方法進行解析這裡用到的是例如<student name="張三" id="1" sex="男"/>這樣的結構進行的解析
#region Xml文件常用操作
XmlDocument doc = new XmlDocument(); //創建文檔對象
doc.Load("Students.xml"); //載入文檔
XmlElement root = doc.DocumentElement; //讀取根節點XmlNode root = doc.DocumentElement
#region 使用Attributes讀取屬性值
foreach (XmlNode node in root.ChildNodes)
{
/*
* 通過node的Attributes屬性
* 可以得到該節點的屬性集合
* 通過索引或屬性名可以拿到相應的值
* (因為Xml是區分大小寫的所在在寫屬性名稱要區分要小寫)
*/
Console.WriteLine(node.Attributes["id"].Name + "=" + node.Attributes["id"].Value);
Console.WriteLine(node.Attributes["name"].Name + "=" + node.Attributes["name"].Value);
Console.WriteLine(node.Attributes["age"].Name + "=" + node.Attributes["age"].Value);
}
#endregion
#region 通過Read讀取
Console.WriteLine("--------------華麗的分割線-----------------");
//XmlReader是抽象類
XmlReader xmlReader = XmlReader.Create("Students.xml");
while (xmlReader.Read())
{
/*
* XmlReader是按流式的讀取
* 它是按元素進行讀取的並不是按節點
* 所以一個節點至少要讀取三次(開始標簽,文本,結束標簽)
* 每一個元素都有相應的元素類型NodeType他是一個枚舉值XmlNodeType
* <Student>
* <Name id = "1">張三<Name/>
* <student/>
* 如果要讀取屬性要進行判斷HasAttributes
* 然後MoveNextAttribute()
*
*/
switch (xmlReader.NodeType)
{
case XmlNodeType.Element:
if (xmlReader.HasAttributes)
{
while (xmlReader.MoveToNextAttribute())
{
Console.WriteLine(xmlReader.Name + "=" + xmlReader.Value);
}
}
break;
}
}
#endregion