zoukankan      html  css  js  c++  java
  • ASP.NET XML高级编程(二、XmlDocument)

    3XmlDocument

    。内存中基于树的模型

    。与基于流的模型相比,DOM的缺点是树模型需要的系统资源(主要是内存)很多。

    3.1文档对象模型

    。基于流的模型创建了内部临时结构,而DOM的基本结构是一个已进行全面分析的文档,它以树的形式驻留在内存中。

    。每个XML文档都有一个根节点。

    DOM中有两个不同的结果:一个用于包含元素、注释、处理指令等;另一个用于包含特性。

    。在ASP.NET中使用DOM不是很复杂。

    3.2DOM.NET类层次结构

     

    常见的:

    XMLNode

    XMLNamedNodeMap

    XMLNodeList

    XMLAttribute

    XMLDocument

    XMLDocumentFragMent

    XMLElement

    XMLNode

    1.       属性:AttributesChildNodesFirstNodeHasChildNodesInnerText LastChildNameValue

    2.       方法:AppendChildInsertAfterInsertBeforeRemoveAllRemoveChildReplaceChildSelectNodes

    各种Insert-Append-Remove-方法可以一次一个层次地组合和分解DOM

    XMLNamedNodeMap

    主要用于收集元素的特性。

    1.       属性:唯一属性Count指定属性映射的节点数。

    2.       方法:GetEnumeratorGetNamedLtemItemRemoveNamedItemSetNamedItem

    3.       枚举特性

    String s = myNode.Attributes.GetNamedIem(“age”);//知道特性名字的情况下枚举

    foreach(XmlAttribute attr in myNode.Attributes)

          String s = attr.Name;//

    for(int i=0;i<myNode.Attributes.Count;i++)

       String s =myNode.Attributes.Item(i).Name;//

    XMLNodeList

    1.       属性:CountItemOf

    2.       方法:GetEnumeratorItem

    3.       遍历树

    void SomeMethod()

            {

                XmlDocument doc = new XmlDocument();

                doc.Load("Http://mysite//mydoc.xml");

                Descend(doc.DocumentElement);

            }

            //深度优先

            public void Descend(XmlNode node)

            {

                if (node.NodeType == XmlNodeType.Element)

                {

                    for (int i = 0; i < node.ChildNodes.Count; i++)

                    {

                        //Do something

                        Descend(node.ChildNodes.Item(i));

                    }

                }

                else

                    //non-element nodes here

            }

            //广度优先

            public void Traverse(XmlNode node)

            {

                XmlNode child;

                //Do Something

                child = node.FirstChild;

                while (child != null)

                {

                    Traverse(child);

                    child = child.NextSibling;

                }

            }

        XMLDocument

    可以执行DOM模型中所有外围结构的接口,还可以创建新节点

    1.       构造函数:public XmlDocument(),public XmlDocument(XmlNameTable)

    2.       属性:DocumentElementDocumentTypeImplementationInnerXmlIsReadOnlyLocalNameNameNameTableNodeTypeOwnerDocumentPreserveWhitespaceXmlResolver

    3.       方法:LoadImportNodeGetElementByIdGetElementByTagNameCreateX

    其中X表示要创建的节点类型。

    4.       事件:NodeChangedNodeChangingNodeInsertedNodeInsertingNodeRemovedNodeRemoving

    XmlDocumentFragment

    是一个帮助性的使用类,用于创建文档片段。

    1.       属性:InnerTextLocalNameNameNodeTypeOwnerDocumentParentNode

    2.       方法:CloneNodeWriteContentToWriteTo

    XMLAttribute

    除了XMLDocumentXMLElementXMLAttribute是最常用的DOM

    1.       属性:BaseURLInnerTextInnerXmlLocalNameNameNamespaceURLNodeTypeOwnerDocumentOwnerElementParentNodePrefixSpcifiedValue

    2.       方法:CloneNodeWriteContentToWriteTo

    XMLLinkedNode

     。是一个抽象类

     。包含用于XML结构的类而不是用于特性、实体和符号。如NextSiblingPreviousSibling

    XmlElement

     元素是XML文档的核心。

    1.       属性:AttributesHasAttributesInnerTextInnerXmlIsEmptyLocalNameNameNamespaceURLNextSiblingNodeTypeOwnerDocumentPrefix

    2.       方法:CloneNodeGetAttributeGetAttributeNodeGetElementsByTagNameHasAttributeRemoveAllRemoveAllAttributesRemoveAttributeRemoveAttrivuteAtRemoveAttributeNodeSetAttributeSetAttributeNodeWriteContentToWriteTo

  • 相关阅读:
    CF # 296 C Glass Carving (并查集 或者 multiset)
    linux 基本命令
    为什么是丰田——丰田的七个习惯之习惯一
    关注C-RAN 的五大理由
    一个效果非常华丽的仿桌面APP,却胜似Launcher
    IOS6.0自带下拉刷新控件UIRefreshControl
    POJ 2421--Constructing Roads【水题 &amp;&amp; 最小生成树 &amp;&amp; kruskal】
    ORACLE-017:SQL优化-is not null和nvl
    数据结构——栈
    数据结构——静态链表
  • 原文地址:https://www.cnblogs.com/tenghoo/p/1232031.html
Copyright © 2011-2022 走看看