在C#中使用XML指南之读取XML
作者: 来源: 添加时间:2006-5-21 20:00:53/// 获取或设置列表框用于显示xml
/// </summary>
public ListBox listBox
{
get
{
return this._listBox;
}
set
{
this._listBox = value;
}
}
/// <summary>
/// 获取或设置xml文件的绝对路径
/// </summary>
public string xmlPath
{
get
{
return this._xmlPath;
}
set
{
this._xmlPath = value;
}
}
#endregion
/// <summary>
/// 遍历Xml文件
/// </summary>
public void EachXml()
{
this._listBox.Items.Clear();
this.xmlTxtRd = new XmlTextReader(this._xmlPath);
try
{
while(xmlTxtRd.Read())
{
this._listBox.Items.Add(this.xmlTxtRd.Value);
}
}
catch(XmlException exp)
{
throw new XmlException(_errMsg + this._xmlPath + exp.ToString());
}
finally
{
if (this.xmlTxtRd != null)
this.xmlTxtRd.Close();
}
}
/// <summary>
/// 读取Xml文件的节点类型
/// </summary>
public void ReadXmlByNodeType()
{
this._listBox.Items.Clear();
this.xmlTxtRd = new XmlTextReader(this._xmlPath);
try
{
while(xmlTxtRd.Read())
{
this._listBox.Items.Add(this.xmlTxtRd.NodeType.ToString());
}
}
catch(XmlException exp)
{
throw new XmlException(_errMsg + this._xmlPath + exp.ToString());
}
finally
{
if (this.xmlTxtRd != null)
this.xmlTxtRd.Close();
}
}
/// <summary>
/// 根据节点类型过滤Xml文档
/// </summary>
/// <param name="xmlNType">XmlNodeType 节点类型的数组</param>
public void FilterByNodeType(XmlNodeType[] xmlNType)
{
this._listBox.Items.Clear();
this.xmlTxtRd = new XmlTextReader(this._xmlPath);
try
{
while(xmlTxtRd.Read())
{
for (int i = 0; i < xmlNType.Length; i++)
{
if (xmlTxtRd.NodeType == xmlNType[i])
{
this._listBox.Items.Add(xmlTxtRd.Name + " is Type " + xmlTxtRd.NodeType.ToString());
}
}
}
}
catch(XmlException exp)
{
throw new XmlException(_errMsg + this.xmlPath + exp.ToString());
}
finally
{
if (this.xmlTxtRd != null)
this.xmlTxtRd.Close();
}
}
/// <summary>
/// 读取Xml文件的所有文本节点值
/// </summary>
public void ReadXmlTextValue()
{
this._listBox.Items.Clear();
this.xmlTxtRd = new XmlTextReader(this._xmlPath);
try
{
while(xmlTxtRd.Read())
{
if (xmlTxtRd.NodeType == XmlNodeType.Text)
{
this._listBox.Items.Add(xmlTxtRd.Value);
}
}
}
catch(XmlException xmlExp)
{
throw new XmlException(_errMsg + this._xmlPath + xmlExp.ToString());
}
finally
{
if (this.xmlTxtRd != null)
this.xmlTxtRd.Close();
}
}