学院首页>网络编程>ASP.NET>在C#中使用XML指南之读取XML

在C#中使用XML指南之读取XML

作者: 来源: 添加时间:2006-5-21 20:00:53
/// <summary>
  /// 获取或设置列表框用于显示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();
   }
  }

第 2 页,共 3 页 [1] [2] [3]
站内搜索