日历

« 2008-08-30  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

最新来客

统计信息

  • 访问量: 232
  • 日志数: 5
  • 建立时间: 2007-08-16
  • 更新时间: 2008-01-22

RSS订阅

我的最新日志

  • 学习C#高级编程之XML

    2008-1-22

    验证XML文档的有效性---使用XMLReader

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    using System.Xml;

    using System.Xml.Schema;

     

    namespace XMLValidatingTest1

    {

        public partial class Form1 : Form

        {

            public Form1()

            {

                InitializeComponent();

            }

     

            private void button1_Click(object sender, EventArgs e)

            {

                XmlReaderSettings settings = new XmlReaderSettings();

                settings.Schemas.Add(null,@"D:\C#\books.xsd");

                settings.ValidationType = ValidationType.Schema;

    //C#高级编程第四版中的例子是错误的,XsdValidate 这个属性在.NET2.0中并不存在,这里//只需要使用ValidationType指定就可以

                settings.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(Settings_ValidationEventHandler);

                XmlReader xr = XmlReader.Create(@"D:\C#\books.xml",settings);

                while (xr.Read())

                {

                    if (xr.NodeType ==XmlNodeType.Text)

                    {

                        this.listBox1.Items.Add(xr.Value);

                    }

                }

            }

            private void Settings_ValidationEventHandler(object sender, ValidationEventArgs args)

            {

                MessageBox.Show(args.Message);

            }

        }

    }

     

  • 学习C#高级编程之XML

    2008-1-22

    处理XML

        System.Xml命名空间

     

    类名

    说明

    XMLReader

    抽象类,提供快速的没有缓存的XML数据,只向前的。

    XMLWriter

    抽象类,以流或文件的方式提供快速的,没有缓存的XML数据

    XMLTextReader

    扩展XMLReader, 提供访问XML数据的只读向前流。

    XMLTextWriter

    扩展XMLWriter, 快速生成只向前的XML 流。

    XMLNode

    抽象类,表示XML 文档的一个结点

    XMLDocument

    扩展XMLNode, 给出XML文档在内存中的树形表示。

    XMLDataDocument

    扩展XMLDataDocument, 可以从XML数据中加载文档, 也可以从ADO.NET中加载文档,允许放在一个视图中。

    XMLResolver

    抽象类, 分析基于XML的外部资源,例如DTD和模式引用,也可以用于处理<xsl:include><xls:import>

    XMLUrlResolver

    扩展XMLUrlResolver, URL解析外部资源。

     

        .NET中使用MSXML

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    using MSXML2;

     

    namespace MSXMLTest

    {

        public partial class Form1 : Form

        {

            private DOMDocument60 doc;

            public Form1()

            {

                InitializeComponent();

            }

     

            private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

            {

                string srch = this.listBox1.SelectedItem.ToString();

                IXMLDOMNode nd = doc.selectSingleNode("bookstore/book[@ISBN= '"+srch+"']");

    //选择所有ISBM=srch并且父结点等于bookstore的所有book接点

                MessageBox.Show(nd.text);

            }

     

            private void button1_Click(object sender, EventArgs e)

            {

                doc = new DOMDocument60();

                doc.load(@"D:\books.xml");

                IXMLDOMNodeList nodes;

                nodes = doc.selectNodes("bookstore/book");

                IXMLDOMNode node = nodes.nextNode();

                while (node != null)

                {

                    this.listBox1.Items.Add(node.attributes.getNamedItem("ISBN").text);

                    node = nodes.nextNode();

                }

            }

        }

    }

        使用System.XML

    XML Reader

     

     

     

     

     

    使用XmlTextReader

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    using System.Xml;

     

    namespace XmlTextReaderTest

    {

        public partial class Form1 : Form

        {

            public Form1()

            {

                InitializeComponent();

            }

     

            private void button1_Click(object sender, EventArgs e)

            {

                  System.Xml.XmlTextReader xr = new System.Xml.XmlTextReader(@"D:\books.xml");

                while (xr.Read())

                {

                    if (xr.NodeType == XmlNodeType.Text)

                        this.listBox1.Items.Add(xr.Value);

                }

     

            }

     

            private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

            {

                string str = this.listBox1.SelectedItem.ToString();

                MessageBox.Show(str);

            }

        }

    }

     

  • 学习C# 高级编程之XML初起步

    2008-1-16

    XML DOM

          XML文档对象模型(XML Document Object Model)定义了一种访问和处理XML文档的标准方法。

    什么是DOM

    “W3C文档对象模型(DOM)是一个使程序和脚本有能力动态地访问和更新文档的内容、结构以及样式的平台和语言中立的接口。

    W3C DOM提供了一套标准的用于HTMLXML文档的对象,以及一个访问这些文档的标准接口。
       W3C DOM
    被分为不同的部分(核心、XMLHTML)以及不同的级别(DOM Level 1/2/3):

    什么是XML DOM?

    ·  XML DOM是针对XML的文档对象模型(Document Object Model

    ·  XML DOM独立于平台和语言

    ·  XML DOM定义了一套标准的用于XML的对象

    ·  XML DOM定义一种标准的访问XML文档的方法

    ·  XML DOM定义了一种标准的处理XML文档的方法

    ·  XML DOM是一个W3C标准

    DOMXML文档作为树结构来查看。所有的元素;它们所包含的文本以及它们的属性,可通过DOM树来进行访问。它们的内容可以被修改或删除,新内容也可被创建。元素、它们的文本以及它们的属性均被作为节点。

          C# XML 的命名空间

    类名

    说明

    XmlReader

    抽象的读取器类,提供快速,没有缓存的XML数据。XMLReader 是只读向前的。

    XmlWriter

    抽象的写入器,以流或文件的格式提供快速,没有缓存的XML数据。

    XmlTestReader

    扩展XMLReader,提供访问XML只度向前流。

    XmlTextWriter

    扩展XMLWriter,提供生成向前的XML流。

    其他比较重要的类

    类名

    说明

    XMLNode

    抽象类,表示XML中的一个结点。

    XMLDocument

    扩展XMLNode, 这是XML DOM的实现方式

    XMLDataDocument

    扩展XMLDocument, 即从XML数据中加载的文档,或从关系数据库中的文档。

    XMLResolver

    抽象类,分析基于XML的外部资源,例如DTD和模式引用,也可以用语处理<xsl:include><xsl:import>元素。

    XMLUrlResolver

    扩展XMLResolver, URL解析外部资源

     

          .Net 中使用MSXML

       //XPath is a language for finding information in an XML document. XPath is used to navigate t//hrough elements and attributes in an XML document.
    //Xpath
    是一种能够在XML文档中寻找信息的语言。它通过XML文档中的元素和属性来进行导