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

posted @ 2008-06-29 16:13  青羽  阅读(1842)  评论(0编辑  收藏  举报