XML 学习之总结[知识整理])_第1页
XML 学习之总结[知识整理])_第2页
XML 学习之总结[知识整理])_第3页
XML 学习之总结[知识整理])_第4页
XML 学习之总结[知识整理])_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Document 方法abort方法说明取消一个进行中的异步下载基本语法xmlDocument.abort();语法说明如果这个方法在异步下载时被呼叫,所有的解析动作会停止,而且在内存中的文件会被释放。使用范例appendChild方法说明加上一个节点当作指定节点最后的子节点基本语法xmlDocumentNode.appendChild(newChild);语法说明newChild 是附加子节点的地址。使用范例docObj xmlDoc.documentElement; alert(docObj.xml); objNewNode docObj. appendChild(xmlDoc. docu

2、mentElement.firstChild); alert(docObj.xml);cloneNode方法说明建立指定节点的复制。基本语法xmlDocumentNode.cloneNode(deep);语法说明deep 是一个布尔值。如果为true,此节点会复制以指定节点发展出去的所有节点。如果是false,只有指定的节点和它的属性被复制。使用范例currNode xmlDoc.documentElement.childNodes.item(1); objClonedNode currNode.cloneNode(1); alert(objClonedNode.xml);createAttr

3、ibute方法说明建立一个指定名称的属性。基本语法xmlDocument.createAttribute(name);语法说明name 是被建立属性的名称。使用范例objNewAtt xmlDoc.createAttribute(encryption); alert(objNewAtt.xml);createCDATASection方法说明建立一个包含特定数据的CDATA。基本语法xmlDocument.createCDATASection(data);语法说明data 是一个字符串,且包含了被置放在CDATA 的资料。使用范例objNewCDATA xmlDoc.createCDATASec

4、tion(This is a CDATA Section); alert(objNewCDATA.xml);createComment方法说明建立一个包含指定数据的批注。基本语法xmlDocument.createComment(data);语法说明data 是一个字符串,且包含了被置放在批注的资料。使用范例objNewComment xmlDoc.createComment(This is a comment); alert(objNewComment.xml);createDocumentFragment方法说明建立一个空的文件片断对象。基本语法xmlDocument.createDocu

5、mentFragment();语法说明一个新的文件片断被建立,但没有加到文件树中。要加入片断到文件树中,必须使用插入方法,例如insertBefore、replaceChild 或appendChild。使用范例objNewFragment xmlDoc.createDocumentFragment(); alert(objNewFragment.xml);createElement方法说明建立一个指定名称的元素。基本语法xmlDocument.createElement(tagName);语法说明tagName 是一个区分大小写的字符串来指定新元素名称。使用范例objNewElement x

6、mlDoc.createElement(TO); alert(objNewElement.xml);createEntityReference方法说明建立一个参照到指定名称的实体。基本语法xmlDocument.createEntityReference(name);语法说明name 是一个区分大小写的字符串,来指定新实体引用的名称。一个新的实体引用被建立,但是并没有被加到文件树中。若要将实体引用加到文件树中,必须使用一种插入方法,例如:insertBefore,replaceChild,或appendChild。使用范例objNewER xmlDoc.createEntityReferenc

7、e(eRef); alert(objNewER.xml);createNode方法说明建立一个指定型态、名称,及命名空间的新节点。基本语法xmlDocument.createNode(type, name, nameSpaceURI);语法说明type 用来确认要被建立的节点型态,name 是一个字符串来确认新节点的名称,命名空间的前缀则是选择性的。nameSpaceURI 是一个定义命名空间URI 的字符串。如果前缀被包含在名称参数中,此节点会在nameSpaceURI 的内文中以指定的前缀建立。如果不包含前缀,指定的命名空间会被视为预设的命名空间。使用范例objNewNode xmlDoc

8、.createNode(1, TO, ); alert(objNewNode.xml);createProcessingInstruction方法说明建立一个新的处理指令,包含了指定的目标和数据。基本语法xmlDocument.createProcessingInstruction(target, data);语法说明target 是表示目标、名称或处理指令的字符串。Data 是表示处理指令的值。一个新的处理指令被建立,但是并没有加到文件树中。要把处理指令加到文件树中,必须使用插入方法,例如:insertBefore、replaceChild,或是appendChild。使用范例objNewP

9、I xmlDoc.createProcessingInstruction(XML, version1.0); alert(objNewPI.xml);createTextNode方法说明建立一个新的text 节点,并包含指定的数据。基本语法xmlDocument.createTextNode(data);语法说明data 是一个代表新text 节点的字符串。一个新的text 节点被建立,但是没有加到文件树中。若要将节点加到文件树中,必须使用插入方法,例如:insertBefore,replaceChild或appendChild。使用范例objNewTextNode xmlDoc.create

10、TextNode(This is a text node.); alert(objNewTextNode.xml);getElementsByTagName方法说明传回指定名称的元素集合。基本语法objNodeList xmlDocument. getElementsByTagName (tagname);语法说明tagname 是一个字符串,代表找到的元素卷标名称。使用tagname *传回文件中所有找到的元素。使用范例objNodeList xmlDoc.getElementsByTagName(*); alert(objNodeList.item(1).xml);hasChildNode

11、s方法说明如果指定的节点有一个或更多子节点,传回值为true。基本语法boolValue xmlDocumentNode.hasChildNodes() ;语法说明如果此节点有子节点传回值为true,否则传回false 值。使用范例boolValue xmlDoc.documentElement.hasChildNodes(); alert(boolValue);insertBefore方法说明在指定的节点前插入一个子节点。基本语法objDocumentNode xmlDocumentNode.insertBefore(newChild,refChild);语法说明newChild 是一个包含

12、新子节点地址的对象,refChild 是参照节点的地址。新子节点被插到参照节点之前。如果refChild 参数没有包含在内,新的子节点会被插到子节点列表的末端。使用范例objRefNode xmlDoc.documentElement; alert(xmlDoc.xml); objNewNode xmlDoc.createComment(This is a comment); xmlDoc.insertBefore(objNewNode, objRefNode); alert(xmlDoc.xml);load方法说明表示从指定位置加载的文件。基本语法boolValue xmlDocument.

13、load(url);语法说明url 包含要被加载档案的URL 的字符串。假如文件加载成功,传回值即为true。若加载失败,传回值为false。使用范例boolValue xmlDoc.load(LstA_1.xml); alert(boolValue);loadXML方法说明加载一个XML 文件或字符串的片断。基本语法boolValue xmlDocument.loadXML(xmlString);语法说明xmlString 是包含XML 文字码的字符串。这个字符串可以包含整个文件或者只是一个文件片断。如果文件加载成功,传回值为true。假如加载失败,传回值则是false。使用范例xmlStr

14、ing Hello! ;boolValue xmlDoc.loadXML(xmlString);alert(boolValue);nodeFromID方法说明传回节点ID 符合指定值的节点。基本语法xmlDocumentNode xmlDocument.nodeFromID(idString);语法说明idString 是一个包含ID 值的字符串。符合的节点必定是ID 型态。若符合,将传回一个对象;若操作失败,则传回null。使用范例objDocumentNode xmlDoc.nodeFromID(TO); alert(objDocumentNode);parsed方法说明会验证该指定的节点

15、(node)及其衍生的子节点(descendants)是否已被解析过。基本语法boolValue xmlDocumentNode.parsed();语法说明如果全部的节点都已经被解析过了,则传回值为ture;如果有任何一个节点尚未被解析,传回值则为false。使用范例currNode xmlDoc.documentElement.childNodes.item(0);boolValue currNode.parsed();alert(boolValue);removeChild方法说明会将指定的节点从节点清单中移除。基本语法objDocumentNode xmlDocumentNode.rem

16、oveChild(oldChild);语法说明oldChild 为一个包含要被移除的节点对象。使用范例objRemoveNode xmlDoc.documentElement.childNodes.item(3);alert(xmlDoc.xml); xmlDoc.documentElement.removeChild(objRemoveNode);alert(xmlDoc.xml);replaceChild方法说明置换指定的旧子节点为提供的新子节点。基本语法objDocumentNode xmlDocumentNode.replaceChild(newChild,oldChild);语法说明

17、newChild 为包含新子节点的对象。如果此参数为null,则此旧子节点会被移除而不会被取代。oldChild 为包含旧子节点的对象。使用范例objOldNode xmlDoc.documentElement.childNodes.item(3);objNewNode xmlDoc.createComment(Ive replaced the BCC element.);alert(xmlDoc.xml);xmlDoc.documentElement.replaceChild(objNewNode,objOldNode);alert(xmlDoc.xml);selectNodes方法说明传回

18、所有符合提供样式(pattern)的节点。基本语法objDocumentNodeList xmlDocumentNode.selectNodes(patternString);语法说明patternString 为一包含XSL 样式的字符串。此方法会传回节点清单对象,包含符合样式的节点。如果没有符合的节点,则传回空的清单列表。使用范例objNodeListxmlDoc.selectNodes(/);alert(objNodeList.item(0).xml);selectSingleNode方法说明传回第一个符合样式的节点。基本语法objDocumentNode xmlDocumentNode

19、. selectSingleNode (patternString);语法说明patternString 为一包含XSL 样式的字符串。此方法会传回第一个符合的节点对象,如果没有符合的节点,则传回null。使用范例objNode xmlDoc.selectSingleNode(EMAIL/BCC);alert(objNode.xml);transformNode方法说明使用提供的样式表来处理该节点及其子节点。基本语法strTransformedDocument xmlDocumentNode.transformNode(stylesheet);语法说明stylesheet 为一XML 文件或是

20、片断包含负责节点转换工作的XSL 元素。此方法会传回一包含转换结果的字符串。使用范例var style new ActiveXObject(Microsoft.XMLDOM);style.load(LstA_49.xsl);strTransform xmlDoc.transformNode(style.documentElement);alert(strTransform);Document 事件ondataavailable事件说明该事件会在XML 文件有效时被触发。基本语法该事件有下面三种处理方式.Inline:;.Event property:object.ondataavailable

21、 handler;.Named script:;语法说明ondataavailable 事件只要一获得有效的数据就会被触发。这项技术并未说明在这个文件中有多少数据是有效的。使用范例xmlDoc.ondataavailable alert(Data is now available.);onreadystatechange事件说明这个事件会在readyState 属性内容改变时被触发。基本语法此一事件有如下三种处理方式(与ondataavailable相似):.Inline:;.Eventproperty:object.onreadystatechangehandler;.Namedscript

22、:;语法说明onreadystatechange事件在readyState属性内容改变时就会被触发,但这个事件并未说明准备好的状态是什么。必须使用readyState属性来取得现在的状态。使用范例xmlDoc.onreadystatechangealert(ThereadyStatepropertyis+xmlDoc.readyState);nodeList 对象的属性length属性说明length 属性是nodeList 对象的唯一属性基本语法传回集合中项目的个数。语法说明intValue xmlNodeList.length;使用范例objNodeList xmlDoc.document

23、Element.childNodes;alert(objNodeList.length);nodeList 对象的方法item方法说明存取文件树中的单一节点。基本语法objDocumentNode xmlNodeList.item(index);语法说明index 为长整数指定子节点的index(0-based)。使用范例objNode xmlDoc.documentElement.childNodes.item(2);alert(objNode.xml);nextNode方法说明存取集合中的下一个节点。基本语法objDocumentNode xmlNodeList.nextNode();语法

24、说明传回包含下一个节点的对象。若无法取得下一个节点则传回null。使用范例objNode xmlDoc.documentElement.childNodes;objNextNode objNode.nextNode();alert(objNextNode.xml);objNextNode objNode.nextNode();alert(objNextNode.xml);reset方法说明重新设定节点清单列表中的索引(index)指针。基本语法objDocumentNode xmlNodeList.reset();语法说明设定节点清单列表中的指针指向第一个节点的前面。使用范例objNode x

25、mlDoc.documentElement.childNodes;objNextNode objNode.nextNode();alert(objNextNode.xml);objNode.reset();objNextNode objNode.nextNode();alert(objNextNode.xml);parseError 对象的属性parseError 对象传回最后一个解析错误的信息。要示范parseError 对象如何运作,需要使用一份有错误的XML 文件,下面是一份保有Cc、Bcc 元素的电子邮件文件,根据DTD 这是一篇错误的电子邮件文件。 J Bill

26、 N P My document is a tree. This is an example of a tree structure. errorCode属性说明传回最后一个解析错误的错误码。基本语法intErrorValue xmlDocument.parseError.errorCode;语法说明此属性只读且会传回一长整数。使用范例intParseValue xmlDoc.parseError.errorCode;alert(intParseValue);filePos属性说明传回档案中错误发生的位置。基本语法intErrorVa

27、lue xmlDocument.parseError.filePos;语法说明此一属性只读,且会传回表示绝对位置的长整数(以字符数表示)。使用范例intParseValue xmlDoc.parseError.filePos;alert(intParseValue);Line属性说明传回错误发生所在的行数。基本语法intErrorValue xmlDocument.parseError.line;语法说明此一属性只读,且会传回表示错误发生所在行数的长整数。使用范例intParseValue xmlDoc.parseError.line;alert(intParseValue);linePos属

28、性说明传回错误发生在行中的哪个位置。基本语法intErrorValue xmlDocument.parseError.linePos;语法说明此一属性只读,且会传回一长整数表示错误发生在行中的哪一个字符位置。使用范例intParseValue xmlDoc.parseError.linePos;alert(intParseValue);reason属性说明传回最后一个错误发生的原因。基本语法strErrorReason xmlDocument.parseError.reason;语法说明此一属性只读,且会传回最后一个解析错误发生原因的叙述字符串。使用范例strErrorReason xmlDo

29、c.parseError.reason;alert(strErrorReason);srcText属性说明传回错误发生处该行的文字。基本语法strSrcText xmlDocument.parseError.srcText;语法说明此一属性只读。传回错误发生处该行完整的文字,而且包含空格。使用范例strSrcText xmlDoc.parseError.srcText;alert(strSrcText);xml学习总结之一1.1 为什么要学习xmlXML发展的非常迅速,这实在令人感到惊奇,有很多的软件开发商都采用了XML标准。我们相信,在未来的Web开发中,XML将和HTML一样受到重视,他们

30、都是Web技术的基础。就连无线标记语言(WML,The Wireless Markup Language ), 用于标识运行于手持设备上(比如:手机)的Internet程序,WML都采用了XML的标准。XML将成为最普遍的数据操纵和数据传输的工具。1.2 什么是XMLXML是EXtensible Markup Language的缩写。XML使用文档类型定义(DTD)或者模式(Schema)来描述数据。XML使用DTD或者Schema后就是自描述的语言。1.3 XML和HTML的主要区别XML是被设计用来描述数据的,重点是:什么是数据,如何存放数据。HTML是被设计用来显示数据的,重点是:显示数

31、据以及如何显示数据更好上面。他们在格式上也存在巨大区别,相对讲xml格式要求严格:a. 所有的XML文档必须有一个结束标记开始标签和结束标签必须配套,也就是必须写成或者。b. 空元素必须关闭不允许出现单标签,但标签必须关闭,关闭使用或者。c. 所有标签都区分大小写d. 所有标签都必须合理嵌套层次合理比如这样就合理。e. 所有标签的属性值必须使用双引号(”)或者但引号括起来f. xml只能有一个根元素1.4 XML文档组成xml文档在逻辑上主要有以下5个部分组成:1.xml声明xml文档总是以一个xml声明开始,其中指明所用的xml版本、文档的编码、文档的独立性信息。格式为:注意那个档中使用的元

32、素不是固定的,那么两个不同的XML文档使用同一个名字来描述不同类型的元素的情况就可能发生。而这种情况又往往会导致命名冲突。简单的说解决方法就是给相同名称元素加上不同的前缀有以下两种形式的名称空间声明:(1)第一种形式:元素名是指你在哪个元素上声明名称空间,其中URI不能为空(“”)。(2)第二种形式:其中URI可以为空(“”)。eg:ApplesBananas关于之后的解析xml,比如DOM、SAX、JAXP等方式,以及xsl转换的应用,这里暂时不总结。因为目前自己的工作中应用那方面的内容很少。而且对于解析xml,也总结有现成的代码了。下次用时,直接代码重用。This entry was po

33、sted on Wednesday, April 18th, 2007 at 10:40 pm and now 224 Views. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site. 1 . XML 与 DTD XML 入门知识 |1.1 为什么要学习xml XML 发展的非常迅速,这实在令人感到惊奇,有很多的软件开发商都采用了 XML 标准。我们相信,在未来的 Web 开发中, XML 将

34、和 HTML 一样受到重视,他们都是 Web 技术的基础。 XML 将成为最普遍的数据操纵和数据传输的工具。 1.2 什么是XML XML 是 EXtensible Markup Language 的缩写。 XML 使用文档类型定义( DTD )或者模式( Schema )来描述数据 。 XML 使用 DTD 或者 Schema 后就是自描述的语言 。 1.3 XML 和HTML的主要区别 XML 是被设计用来描述数据的,重点是:什么是数据,如何存放数据。 HTML 是被设计用来显示数据的,重点是:显示数据以及如何显示数据更好上面。他们在格式上也存在巨大区别,相对讲 xml 格式要求严格: a

35、. 所有的 XML 文档必须有一个结束标记 开始标签和结束标签必须配套,也就是必须写成 或者 。 b. 空元素必须关闭 不允许出现单标签,但标签必须关闭,关闭使用 或者 。 c. 所有标签都区分大小写 d. 所有标签都必须合理嵌套 层次合理比如 这样就合理。 e. 所有标签的属性值必须使用双引号 (”) 或者但引号括起来 f. xml 只能有一个根元素 1.4 XML 文档组成 xml 文档在逻辑上主要有以下 5 个部分组成: 1.xml 声明 xml 文档总是以一个 xml 声明开始,其中指明所用的 xml 版本、文档的编码、文档的独立性信息。格式为: 其中需要注意的是在问号左右两边不能有空

36、格。 还有其默认编码是 utf8 yes 表示文档是独立文档,即不依赖于外部文档。 2. 文档类型声明 我们可以用 DTD ( Document Type Definition 文档类型定义)来规范 xml 文档中元素和属性的规则及相互关系。 XML 从 SGML ( Standard Generalized Markup Language,SGML 标准通用标记语言)继承了用于定义语法规则的 DTD 机制。几乎所有的 xml 应用都是使用 DTD 来定义的。 DTD 文件也是一个文本文件,通常用 ”.dtd” 作为其扩展名。 通过文档类型声明,指出 xml 文档所用的 DTD 。文档类型声明

37、有两种形式,一种是声明 DTD 在一个外部文件中,例如: 另 1 种是直接在 xml 给出 dtd ,例如: !DOCTYPE greeting 3. 元素 XML 元素命名必须遵守下面的规则: 元素的名字可以包含子母,数字和其他字符。 元素的名字不能以数字或者标点符号开头。 元素的名字不能以 XML( 或者 xml , Xml,xMl.) 开头。 元素的名字不能包含空格。 尽量不用冒号,冒号在名称空间中用于分隔名称空间前缀和本地部分。 有 2 个细节: 1. CDATA 段 CDATA 段中包含的都是纯字符数据,在字符数据可以出现的任何地方都可以使用 CDATA 段。 CDATA 段主要用于

38、需要将整个文本解释为字符数据而不是标记的情况下。 CDATA 段以字符串 ” 结束。 2. 字符引用和预定义实体引用 xml 有 5 个特殊字符,小于 、双引号 ” 、单引号 、和号 & 。在数据中需要使用这几个字符时候可以用通用字符引用和预定义引用: 请参考:表 1-1 特殊字符的字符引用和预定义实体引用 字符 字符引用 10 进制 字符引用 16 进制 预定义实体引用 > “ " ' & & 4. 注释 在 XML 中注释的语法基本上和 HTML 中的一样。 。注释不要出现在标记中。 5. 处理指令 处理指令允许文档中包含由应用程序来处理的指令。处理指令的

39、语法和 xml 声明类似,以 结束。一个常见的样式表单的处理指令如下所示: 1.5 关于DTD 符合语法的 XML 文档称为结构良好的 XML 文档。 通过 DTD 验证的 XML 文档称为有效的 XML 文档。 XML Schema(XML 模式 ) 是基于 XML 的 DTD 的替代品。 通过 DTD ,你的每一个 XML 文件都自身携带有关它自身格式的说明。 通过 DTD ,不同群体的人们可以对使用普通的 DTD 来交换数据的方法达成一致。 含有 DTD 的实例 XML 文件: #PCDATA 指明必须是字符数据。 12!DOCTYPEnote345678910Tove11Jani12R

40、eminder13Dontforgetmethisweekend1415如果 DTD 对于你的 XML 文件是外部而言,那么它会在含有以下句法构造的 DOCTYPE 声明中预先包装进去。如: 1234Tove5Jani6Reminder7Dontforgetmethisweekend!8下面是一份包含了 DTD 的 note.dtd 文件副本: 1 2 3 4 5 1.6 XSL XSL (全称是:可扩展的样式单语言,the eXtensible Stylesheet Language)比CSS样式单功能要强大的多。XSL的一个主要的用途就是将XML文档转换成HTML格式的文件,然后再交付给浏

41、览器,由浏览器显示转换的结果。是XML的可扩展样式单语言。1.7 XML 数据岛 在 HTML 页面中嵌入 XML 数据 使用非官方标准的 标记可以将 XML 数据嵌入到 HTML 页面中。 XML 数据可以象下面的例子那样嵌入 HTML 页面 : 123Tove4Jani5Reminder6Dontforgetmethisweekend!78或者象下面这样嵌入外部单独的 XML 文件 : 注意那个 标记是一个 HTML 元素,而不是一个 XML 元素。 数据绑定 XML 数据岛可以绑定到 HTML 元素上(比如表格)。 在下面的例子中,一个 XML 数据岛( ID=cdcat )被从外部 X

42、ML 文档载入。一个 HTML 的表格绑定到此数据岛上。 HTML 表格内部的 span 元素使用 datafld 属性和 XML 文档相应的 XML 元素相互绑定。 123456789101112写到这里想起原来看 js 的一个应用实例,以数据岛实现了无刷新分页程序。 代码如下: 123456789userhcm1011namehechangmin121314151617user21819name2202122232425user32627name3282930313233user43435name4363738394041user54243name5444546474849user65051name6525354555657user75859name7606162636465user86667name8686970717273user97475name976777879808182838485868788899091929394959697varrs=docu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论