zoukankan      html  css  js  c++  java
  • XML随笔

    读取Xml节点内容
    public void readXml()
    {
     string str = "";
                XmlReader re = XmlReader.Create(@"d://s.xml");
                while (re.Read())
                {
                    if (re.NodeType == XmlNodeType.Text)
                    {
                        str += re.Value+"\r\n";
                    }
                }
              console.writeline(str);
    }

    XmlDocument

    下载节点为“title”的内容

    public void read()

    {

    string str="";

     XmlDocument doc = new XmlDocument();
                doc.Load(@"d://s.xml");
                XmlNodeList nod = doc.GetElementsByTagName("title");
                foreach (XmlNode no in nod)
                {
                    str += no.OuterXml + "\r\n";
                }

    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Xml;

    namespace 读取XML
    {
        /// <summary>
        /// Xml文件读取器
        /// </summary>

        public class XmlReader : IDisposable
        {
            private string _xmlPath;
            private const string _errMsg = "Error Occurred While Reading ";
            private ListBox _listBox;
            private XmlTextReader xmlTxtRd;

            #region XmlReader 的构造器

            public XmlReader()
            {
                this._xmlPath = string.Empty;
                this._listBox = null;
                this.xmlTxtRd = null;
            }

            /// <summary>
            /// 构造器
            /// </summary>
            /// <param name="_xmlPath">xml文件绝对路径</param>
            /// <param name="_listBox">列表框用于显示xml</param>

            public XmlReader(string _xmlPath, ListBox _listBox)
            {
                this._xmlPath = _xmlPath;
                this._listBox = _listBox;
                this.xmlTxtRd = null;
            }

            #endregion
            #region XmlReader 的资源释放方法

            /// <summary>
            /// 清理该对象所有正在使用的资源

            /// </summary>

            public void Dispose()
            {
                this.Dispose(true);
                GC.SuppressFinalize(this);
            }

            /// <summary>
            /// 释放该对象的实例变量
            /// </summary>
            /// <param name="disposing"></param>

            protected virtual void Dispose(bool disposing)
            {
                if (!disposing)
                    return;
                if (this.xmlTxtRd != null)
                {
                    this.xmlTxtRd.Close();
                    this.xmlTxtRd = null;
                }

                if (this._xmlPath != null)
                {
                    this._xmlPath = null;
                }
            }

            #endregion
            #region XmlReader 的属性

            /// <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();
                }
            }

            /// <summary>
            /// 读取Xml文件的属性
            /// </summary>

            public void ReadXmlAttributes()
            {
                this._listBox.Items.Clear();
                this.xmlTxtRd = new XmlTextReader(this._xmlPath);

                try
                {
                    while (xmlTxtRd.Read())
                    {
                        if (xmlTxtRd.NodeType == XmlNodeType.Element)
                        {
                            if (xmlTxtRd.HasAttributes)
                            {
                                this._listBox.Items.Add("The Element " + xmlTxtRd.Name + " has " + xmlTxtRd.AttributeCount + " Attributes");

                                this._listBox.Items.Add("The Attributes are:");

                                while (xmlTxtRd.MoveToNextAttribute())
                                {
                                    this._listBox.Items.Add(xmlTxtRd.Name + " = " + xmlTxtRd.Value);
                                }
                            }
                            else
                            {
                                this._listBox.Items.Add("The Element " + xmlTxtRd.Name + " has no Attribute");
                            }
                            this._listBox.Items.Add("");
                        }
                    }
                }
                catch (XmlException xmlExp)
                {
                    throw new XmlException(_errMsg + this._xmlPath + xmlExp.ToString());
                }
                finally
                {
                    if (this.xmlTxtRd != null)
                        this.xmlTxtRd.Close();
                }
            }

            /// <summary>
            /// 读取Xml文件的命名空间
            /// </summary>

            public void ReadXmlNamespace()
            {
                this._listBox.Items.Clear();
                this.xmlTxtRd = new XmlTextReader(this._xmlPath);
                try
                {
                    while (xmlTxtRd.Read())
                    {
                        if (xmlTxtRd.NodeType == XmlNodeType.Element && xmlTxtRd.Prefix != "")
                        {
                            this._listBox.Items.Add("The Prefix " + xmlTxtRd.Prefix + " is associated with namespace " + xmlTxtRd.NamespaceURI);

                            this._listBox.Items.Add("The Element with the local name " + xmlTxtRd.LocalName + " is associated with" + " the namespace " + xmlTxtRd.NamespaceURI);
                        }

                        if (xmlTxtRd.NodeType == XmlNodeType.Element && xmlTxtRd.HasAttributes)
                        {
                            while (xmlTxtRd.MoveToNextAttribute())
                            {
                                if (xmlTxtRd.Prefix != "")
                                {
                                    this._listBox.Items.Add("The Prefix " + xmlTxtRd.Prefix + " is associated with namespace " + xmlTxtRd.NamespaceURI);

                                    this._listBox.Items.Add("The Attribute with the local name " + xmlTxtRd.LocalName + " is associated with the namespace " + xmlTxtRd.NamespaceURI);

                                }
                            }
                        }
                    }
                }
                catch (XmlException xmlExp)
                {
                    throw new XmlException(_errMsg + this._xmlPath + xmlExp.ToString());
                }
                finally
                {
                    if (this.xmlTxtRd != null)
                        this.xmlTxtRd.Close();
                }
            }

            /// <summary>
            /// 读取整个Xml文件
            /// </summary>

            public void ReadXml()
            {
                string attAndEle = string.Empty;
                this._listBox.Items.Clear();
                this.xmlTxtRd = new XmlTextReader(this._xmlPath);

                try
                {
                    while (xmlTxtRd.Read())
                    {
                        if (xmlTxtRd.NodeType == XmlNodeType.XmlDeclaration)
                            this._listBox.Items.Add(string.Format("<?{0} {1} ?>", xmlTxtRd.Name, xmlTxtRd.Value));
                        else if (xmlTxtRd.NodeType == XmlNodeType.Element)
                        {
                            attAndEle = string.Format("<{0} ", xmlTxtRd.Name);
                            if (xmlTxtRd.HasAttributes)
                            {
                                while (xmlTxtRd.MoveToNextAttribute())
                                {
                                    attAndEle = attAndEle + string.Format("{0}='{1}' ", xmlTxtRd.Name, xmlTxtRd.Value);
                                }
                            }

                            attAndEle = attAndEle.Trim() + ">";
                            this._listBox.Items.Add(attAndEle);
                        }
                        else if (xmlTxtRd.NodeType == XmlNodeType.EndElement)
                            this._listBox.Items.Add(string.Format("</{0}>", xmlTxtRd.Name));
                        else 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();
                }
            }
        }
    }

  • 相关阅读:
    轨迹预测-运动递归函数
    Mandelbrot集合及其渲染
    如何检测一个圆在多个圆内?
    【转】三十分钟掌握STL
    【转】如何理解c和c++的复杂类型声明
    有1,2,3一直到n的无序数组,排序
    归并排序
    希尔排序
    快速排序
    冒泡排序
  • 原文地址:https://www.cnblogs.com/happygx/p/1957860.html
Copyright © 2011-2022 走看看