在xml中使用dom模型

翻译|其它|编辑:郝浩|2008-01-03 14:06:31.000|阅读 1011 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

     一、xmlnode 类节点:
  xmlnode 类表示 xml 文档中的单个节点,其命名空间为:System。Xml
  XmlNode 的三个最主要的子类包括:XmlDocument、XmlDataDocument 及XmlDocumentFragment
    1.XmlNode类的属性:    

      public virtual bool HasChildNodes {get;} 获取一个值,该值指示当前节点是否有任何子节点
  public virtual XmlNodeList ChildNodes {get;} 获取当前节点的所有子节点
  public virtual XmlNode FirstChild {get;} 获取当前节点的第一个子级
  public virtual XmlNode LastChild {get;} 获取当前节点的最后一个子级
  public virtual XmlNode ParentNode {get;} 获取当前节点的父级
  public virtual XmlNode NextSibling {get;} 获取当前节点的下一个兄弟节点
  public virtual XmlNode PreviousSibling {get;} 获取当前节点的上一个兄弟节点
  public virtual string InnerText {get; set;} 获取或设置当前节点及其所有子节点的文本内容的串联值
  public virtual string InnerXml {get; set;} 获取或设置仅代表当前节点的子节点的标记
  public virtual string OuterXml {get;} 获取表示当前节点及其所有子节点的标记
      public virtual string Attributes{get;}  获取一个 XmlAttributeCollection   ,包含该节点的属性
      public virtual string Item{get;set;}            获取指定的子元素

  XmlNode 类的常用方法

      publlic virtual XmlNodeList SelectNodes(string); 选择文档中匹配 XPath 表达式的节点列表
  publlic virtual XmlNode SelectSingleNode(string); 选择文档中匹配 XPath 表达式的第一个 XmlNode
  public virtual XmlNode AppendChild(XmlNode newChild) 将指定的节点添加到该节点的子节点列表的末尾
  public virtual XmlNode PrependChild(XmlNode newChild) 将指定的节点添加到该节点的子节点列表的开头
  public virtual XmlNode RemoveChild(XmlNode oldChild) 移除指定的子节点
  public virtual XmlNode ReplaceChild(XmlNode newChild,XmlNode oldChild) 用 newChild 节点替换子节点 oldChild
  public virtual bool equals()     确定两个 object 实例是否相等
  public virtual bool ReferenceEquals()  确定指定的 Object 实例是否是相同的实例
  public virtual string ToString()   返回当前 object 的 string
  public virtual bool XmlNode()     当在派生类中被重写时,该节点的所有字节点会保存到指定的XmlWriter 中

  二. XmlNodeList 类:

  该类表示 XmlNode 的有序集合,它有以下常用成员:
  Count——以整数形式返回 XmlNodeList 中的节点数
  ItemOf——搜索在指定索引处的节点
  GetEnumerator()——提供迭代遍历节点列表的 foreach 样式
  Item()——返回参数指定的索引处的节点

  三.XmlDocument 类

  XmlDocument 类的对象代表了一个 XML 文档

      1. XmlDocument 类的属性:

  Attributes  ——包含节点属性
  ChildNodes——获取节点的所有子节点
  DocumentElement——获取文档的根 XmlElement
  DocumentType——获取包含 doctype 声明的节点
  FirstChild——获取节点的第一个子级
  LastChild——获取节点的最后一个子级
  ParentNode——获取该节点的父级
  HasChildNodes——获取一个值,该值指示当前节点是否有任何子节点
  InnerText ——获取或设置当前节点及其所有子节点的文本内容的串联值
  InnerXml——获取或设置仅代表当前节点的子节点的标记
  OuterXml ——获取表示当前节点及其所有子节点的标记
  Item——获取指定的子元素
  value——获取或设置节点的值

  2.XmlDocument 类常用方法

  Save——将 XML 文档保存到指定的位置
  CreateAttribute——创建此节点的一个副本
  CreateElement——创建 XmElement
  CreateNode——创建 XmlNode
  CreateTextNode——创建具有指定文本的 XmlText
  GetType——获取当前实例的 Type
  ImportNode——将节点从另一个文档导入到当前文档
  InsertAfter——将指定的节点紧接着插入指定的引用节点之后
  InsertBefore——将指定的节点紧接着插入指定的引用节点之前
  Load——加载指定的xml数据
  LoadXml——从指定的字符串加载 xml 文档
  SelectNodes——选择文档中匹配 XPath 表达式的节点列表
  SelectSingleNode——选择文档中匹配 XPath 表达式的第一个 XmlNode
  AppendChild——将指定的节点添加到该节点的子节点列表的末尾
  PrependChild——将指定的节点添加到该节点的子节点列表的开头
  RemoveChild——移除指定的子节点
  ReplaceChild——用 newChild 节点替换子节点 oldChild

  3.XmlDocument 类常用 Public 事件

  NodeChaged——当属于该文档的节点的 Value 已被更改时发生
  NodeChaging——当属于该文档的节点的 Value 将被更改时发生
  NodeInserted——当属于该文档的节点已被插入另一个节点时发生
  NodeInserting——当属于该文档的节点已将插入另一个节点时发生
  NodeRemoved——当属于该文档的节点已被从其父级移除时发生
  NodeRemoved——当属于该文档的节点将被从其父级移除时发生
实例:
    界面输入联系人信息保存到 xml 文件中
 protected void Page_Load(object sender, EventArgs e)
    ...{

    }
    private void SaveXMLData_nodemode()
    ...{
        try
        ...{
            //创建一个 XmlDocument 对象,用于载入存储信息的 xml 文件
            XmlDocument xdoc = new XmlDocument();
            xdoc.Load(Server.MapPath("phonobood.xml"));
            //创建一个新的 menber 节点并将它添加到根节点下
            XmlElement parenetNode = xdoc.CreateElement("member");
            xdoc.DocumentElement.PrependChild(parenetNode);
            //创建所有用于存储信息的节点
            XmlElement nameNode = xdoc.CreateElement("name");
            XmlElement telphoneNode = xdoc.CreateElement("telphone");
            XmlElement qqNode = xdoc.CreateElement("qq");
            //XmlElement msnNode = xdoc.CreateElement("msn");

            //获取文本信息
            XmlText nameText = xdoc.CreateTextNode(Request.Form.Get("name"));
            XmlText telphoneText = xdoc.CreateTextNode(Request.Form.Get("telphone"));
            XmlText qqText = xdoc.CreateTextNode(Request.Form.Get("qq"));
            //将上面创建的各个存储信息的节点添加到 menber 节点下,但并不包含最终的值
            parenetNode.AppendChild(nameNode);
            parenetNode.AppendChild(telphoneNode);
            parenetNode.AppendChild(qqNode);
            //将上面获取的文本信息添加到与之相对应的节点中
            nameNode.AppendChild(nameText);
            telphoneNode.AppendChild(telphoneText);
            qqNode.AppendChild(qqText);
            //保存存储信息的 xml 文件
            xdoc.Save(Server.MapPath("phonebood.xml"));

        }
        catch (exception se)
        ...{
            Console.WriteLine(se.Message);
        }

    }


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:CSDN

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP