XMLDOM手册
DOM 参考手册

-5-
访问页面元素(支持多浏览器)
一、节点的类型:
文档节点(document node) 、元素节点(Element node) 、文本节点(text node) 、属性节点(attribute node) 文档节点代表了文档本身,也是 DOM 树的根。 元素节点代表了 HTML 文档中任何一个标签。 文本节点代表了一个元素标签内部的文本。 属性节点代表了一个开放的元素标签内部所指定的属性。 每个页面都有一个文档节点,其他的节点都源自于这个节点。通过访问元素的节点、文本节点、属性节点,页 面中的所有元素都可以被 Javascript 程序访问。 <html> <head><title>如何访问页面元素</title></head> <body> <h1 id='title'>节点的类型</h1> <p class="top">文本节点</p> </body> </html> 文档节点:document 元素节点:document、html、title、head、body、h1、p 文本节点:如何访问页面元素、节点的类型、文本节点 属性节点:id、class
DOM 节点(node)常用属性和方法
属性/方法 nodeName nodeValue nodetType firstChild lastChild childNodes hasChildNodes() parentNode previousSibling nextSibling attributes appendChild(node) insertBefore(nwNode,oldNode) replaceChild(nwNode,oldNode) 类型/返回类型 String String Number Node Node NodeList Boolean Node Node Node NameNodeMap Node Node Node 说明 节点名称 节点值,由节点类型决定 节点类型:1—元素节点,2—属性节点,3—文本节点 节点的第一个子节点 节点的最后一个子节点 节点的所有子节点集合 本节点有子节点,返回 true, 节点的父节点,如果本节点为根节点,则 parentNode 为 null 节点的前一个兄弟节点 节点的后一个兄弟节点 节点的所有属性映射集合 在本节点的子节点末尾处添加一个子节点 node 在本节点的子节点 oldNode 之前插入一个新节点 newNode 将本节点的子节点 oldNode 替换为新节点 newNode
Schema 教程

Schema 教程 XSD 教程 XSD 简介XML Schema 是基于 XML 的 DTD 替代者。
XML Schema 描述 XML 文档的结构。
XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。
在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强大,以及如何在您的应用程序中使用 XML Schema。
开始学习 XML Schema !XML Schema 参考手册在 W3School,我们提供完整的有效的 XML Schema 元素。
XML Schema 参考手册XML Schema 简介 XSD 教程 XSD 为何使用XML Schema 是基于 XML 的 DTD 替代者。
XML Schema 可描述 XML 文档的结构。
XML Schema 语言也可作为 XSD(XML Schema Definition)来引用。
您应当具备的基础知识在继续学习之前,您需要对下面的知识有基本的了解: HTML / XHTML XML 以及 XML 命名空间 对 DTD 的基本了解如果您希望首先学习这些项目,请在 首页 访问这些教程。
什么是 XML Schema?XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD。
XML Schema: 定义可出现在文档中的元素 定义可出现在文档中的属性 定义哪个元素是子元素 定义子元素的次序 定义子元素的数目 定义元素是否为空,或者是否可包含文本 定义元素和属性的数据类型 定义元素和属性的默认值以及固定值XML Schema 是 DTD 的继任者我们认为 XML Schema 很快会在大部分网络应用程序中取代 DTD。
理由如下: XML Schema 可针对未来的需求进行扩展 XML Schema 更完善,功能更强大 XML Schema 基于 XML 编写 XML Schema 支持数据类型 XML Schema 支持命名空间为什么要使用 XML Schema? XSD 简介 XSD 如何使用XML Schema 比 DTD 更强大。
xml的语法

XML(Extensible Markup Language)是一种元标记语言,可以用来描述数据。
XML提供了一种标准化的方式,使程序和应用程序可以有效地共享数据,而不受数据类型和平台的限制。
XML的语法包括文档格式、元素、属性和实体等。
一、XML文档格式XML文档是一个标记文档,包含一个XML声明,一个根元素和其他元素。
XML声明用来声明文档的版本号、编码方式和其他信息。
根元素是文档的起始点,它可以包含其他元素和属性。
其他元素是根元素的子元素,可以包含其他元素和属性。
属性是元素的附加信息,可以用来描述元素的语义。
二、XML元素XML元素是文档的基本单位,用来描述数据。
元素可以包含子元素,也可以包含属性。
元素的起始标签和结束标签之间的内容是元素的内容。
元素的内容可以是文本、其他元素、属性或实体。
三、XML属性XML属性是元素的附加信息,可以用来描述元素的语义。
属性的值可以是字符串、数值、日期或其他类型的数据。
属性的名字应该使用驼峰命名法,即首字母小写,其余字母大写。
属性的值应该使用双引号括起来,以区分属性的名字和值。
四、XML实体XML实体是一个名称,可以用来表示一个完整的文本或其他数据。
实体可以用来替换XML中的文本或其他数据,以提高XML文档的可读性和可维护性。
五、XML语法错误XML文档的语法错误可能会导致XML解析器无法解析文档。
常见的XML语法错误包括:1. 缺少元素或属性的起始标签或结束标签。
2. 元素或属性的名字错误,或者名字不符合驼峰命名法。
3. 元素或属性的值不符合XML的语法规则,例如字符串值缺少引号或实体值缺少引号。
4. 属性的名字与元素的名字相同。
5. 文档格式不正确,例如缺少XML声明或根元素。
六、XML文档解析XML文档可以使用XML解析器解析,以获取文档的内容。
XML解析器可以使用SAX(Simple API for XML)或DOM(Document Object Model)等方式解析文档。
XML轻松学习手册

65XML轻松学习手册(1)目录出处:eNet学院责任编辑:pjl[04-2-14 9:17] 作者:阿捷XML越来越热,关于XML的基础教程网络上也随处可见。
可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。
首先有两点是需要肯定的:第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会;第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高。
不要害怕和逃避,毕竟我们还年轻。
本文共分五大部分。
分别是XML快速入门,XML的概念,XML 的术语,XML的实现,XML的实例分析。
最后附录介绍了XML的相关资源。
作者站在普通网页设计人员的角度,用平实生动的语言,向您讲述XML的方方面面,帮助你拨开XML的神秘面纱,快速步入XML 的新领域。
·第一章:XML快速入门·一. 什么是XML?·二. XML是新概念吗?·三. 使用XML有什么好处?·四. XML很难学吗?·五. XML和HTML的区别·六. XML的严格格式·七. 关于XML的更多·第二章:XML概念·一. 扩展性·二. 标识·三. 语言·四. 结构化·五. Meta数据·六. 显示·七. DOM·第三章:XML的术语·导言·一.XML文档的有关术语·二.DTD的有关术语·第四章:XML的语法·一.XML语法规则·二.元素的语法·三.注释的语法·四.CDATA的语法·五.Namespaces的语法·六.entity的语法·七.DTD的语法·第五章:XML实例解释·一.定义新标识·二.建立XML文档·三.建立相应的HTML文件·第六章:XML相关资源XML越来越热,关于XML的基础教程网络上也随处可见。
DOM参考手册

DOM参考手册Anchor 对象Anchor 对象代表一个HTML 超链接。
在HTML 文档中<a> 标签每出现一次,Anchor 对象就会被创建。
锚可用于创建到另一个文档的链接(通过href 属性),或者创建文档内的书签。
Anchor 对象的属性属性描述:●accessKey 设置或返回访问一个链接的快捷键。
●charset 设置或返回被链接资源的字符集。
●coords 设置或返回逗号分隔列表,其中包含了图像映射中一个链接的坐标。
●href 设置或返回被链接资源的URL。
●hreflang 设置或返回被链接资源的语言代码。
●id 设置或返回一个链接的id。
●innerHTML 设置或返回一个链接的内容。
●name 设置或返回一个链接的名称。
●rel 设置或返回当前文档与目标URL 之间的关系。
●rev 设置或返回目标URL 与之间当前文档的关系。
●shape 设置或返回图像映射中某个链接的形状。
●tabIndex 设置或返回某个链接的T ab 键控制次序。
●target 设置或返回在何处打开链接。
●type 设置或返回被链接资源的MIME 类型。
标准属性:●className 设置或返回元素的class 属性。
●dir 设置或返回文本的方向。
●lang 设置或返回元素的语言代码。
●title 设置或返回元素的title。
属性说明:1、accessKey 属性可设置或返回访问一个链接的键盘按键。
请使用Alt + accessKey 为拥有指定快捷键的元素赋予焦点。
语法:anchorObject.accessKey=accessKey实例:document.getElementById('w3').accessKey="w"2、tabIndex 属性可为链接设置或返回tab 键控制次序。
语法:anchorObject.tabIndex=tabIndex实例:下面的例子可更改三个链接的tab 键控制次序:function changeT abIndex() {document.getElementById('1').tabIndex="3"document.getElementById('2').tabIndex="2"document.getElementById('3').tabIndex="1"}3、target 属性可设置或返回在何处打开链接。
Qt中使用DOM对XML进行的各种解析

Qt中使用DOM对XML进行的各种解析(总结)前几天因为底层拓扑结构发生了变化,导致拓扑文件发生了变化,我负责的对于拓扑文件的解析操作自然也就要推到重来。
利用上个周末的时间,把这个任务搞定了,顺便也利用这个时间好好总结下这次学到的知识。
我们知道,QT中对于XML文件的读写无非就两种方式,DOM和SAX,两种方法的具体介绍如下:/***************************************我是传说中的分割线**************************************************************/用于读取和操作XML 文件的标准是文档对象模型DOM。
DOM为XML 文档的已解析版本定义了一组接口。
解析器读入整个文档,然后构建一个驻留内存的树结构,然后您的代码就可以使用DOM 接口来操作这个树结构。
您可以遍历树以了解原始文档包含了什么,您可以删除树的几个部分,还可以重新排列树和添加新的分支,等等。
遗憾的是,因为DOM 方法涉及读取整个文件并将该文件存储在一个树结构中,而这样可能是低效的、缓慢的,并且很消耗资源:DOM 构建整个文档驻留内存的树。
如果文档很大,就会要求有极大的内存。
DOM 创建表示原始文档中每个东西的对象,包括元素、文本、属性和空格。
如果您只需关注原始文档的一小部分,那么创建那些永远不被使用的对象是极其浪费的。
DOM 解析器必须在您的代码取得控制权之前读取整个文档。
对于非常大的文档,这会引起显著的延迟。
这些仅仅是由文档对象模型的设计引起的问题;撇开这些问题,DOM API 是解析XML 文档非常有用的方法。
一种替代技术就是SAX。
相比于文档对象模型DOM,SAX 是读取和操作XML 数据的更快速、更轻量的方法。
SAX 允许您在读取文档时处理它,从而不必等待整个文档被存储之后才采取操作。
它不涉及DOM所必需的开销和概念跳跃。
SAX API是一个基于事件的API,适用于处理数据流,即随着数据的流动而依次处理数据。
nodexmldom用法

nodexmldom用法xmldom是一个用于解析和操作XML文档的JavaScript库。
它是基于DOM模型构建的,可以在Node.js环境下使用。
安装要使用xmldom库,首先需要在Node.js项目中进行安装。
可以通过npm命令来安装xmldom:```npm install xmldom```使用xmldom一旦安装成功,就可以在Node.js项目中引入xmldom模块:```javascriptconst { DOMParser, XMLSerializer } = require('xmldom');```解析XML文档要解析XML文档,可以使用DOMParser类的实例,并调用parseFromString方法。
这将返回一个Document对象,表示整个XML文档:```javascriptconst xml = `<root><element>Node.js</element></root>`;const parser = new DOMParser(;const doc = parser.parseFromString(xml, 'text/xml');```现在,我们可以使用Document对象来访问和操作XML文档的内容。
获取根元素要获取XML文档的根元素,可以使用Document对象的documentElement属性:```javascriptconst root = doc.documentElement;console.log(root.tagName); // 输出: root```获取元素要获取XML文档中的元素,可以使用Document对象的getElementById、getElementsByTagName或getElementsByClassName等方法:```javascriptconst element = doc.getElementById('element');console.log(element.tagName); // 输出: elementconst elements = doc.getElementsByTagName('element'); console.log(elements.length); // 输出: 1const elementsByClass = doc.getElementsByClassName('class'); console.log(elementsByClass.length); // 输出: 2```获取元素的属性要获取元素的属性,可以使用Element对象的getAttribute方法:```javascriptconst element = doc.getElementsByTagName('element')[0]; const attribute = element.getAttribute('attribute'); console.log(attribute); // 输出: value```设置元素的属性要设置元素的属性,可以使用Element对象的setAttribute方法:```javascriptconst element = doc.getElementsByTagName('element')[0]; element.setAttribute('attribute', 'new value');console.log(element.getAttribute('attribute')); // 输出: new value```获取元素的文本内容要获取元素的文本内容,可以使用Element对象的textContent属性:```javascriptconst element = doc.getElementsByTagName('element')[0];console.log(element.textContent); // 输出: Node.js```修改元素的文本内容要修改元素的文本内容,可以直接修改Element对象的textContent属性的值:```javascriptconst element = doc.getElementsByTagName('element')[0];element.textContent = 'New text content';console.log(element.textContent); // 输出: New text content```添加元素要添加新的元素,可以创建一个新的Element对象,并使用Document对象的createElement方法:```javascriptconst newElement = doc.createElement('newElement');newElement.textContent = 'New element';doc.documentElement.appendChild(newElement);console.log(doc.documentElement.innerHTML);```删除元素要删除元素,可以使用Element对象的removeChild方法:```javascriptconst element = doc.getElementsByTagName('element')[0];doc.documentElement.removeChild(element);console.log(doc.documentElement.innerHTML);```保存XML文档要将Document对象保存为XML文档,可以使用XMLSerializer类的实例,并调用serializeToString方法:```javascriptconst serializer = new XMLSerializer(;const xmlString = serializer.serializeToString(doc);console.log(xmlString);```以上是xmldom的基本用法,通过使用DOMParser解析XML文档,使用Document对象访问和操作XML文档的内容,以及使用XMLSerializer 将Document对象保存为XML文档。
浏览器的开发技术手册

浏览器加载 XML 网页时,能由网页中的 Script 内容自行作运算产生动态网页的效果,来减少服务器的速度的限制在非 PC 平台上,处理器的效能不若 PC 平台上强大。
因此,微型浏览器的效能必须要被提升。
就这方面来说,我们设计两个能够提升整体效能的方法:● 以C语言实作核心:Rock Browser 是以 UML 的观点设计,因此在架构上是以对象导向为概念,但是在实作之初,考虑到对象导向语言在实作继承、多形和封装时,额外的机制会造成程序代码变大变慢,且在移植平台的语言支持上,C 语言是较常被支持的。
因此决定以 C 语言来实作对象导向观念所设计的项目。
这样不但可以制作快速而小的程序,同时也具备了较高的移植性。
● 数组堆栈:在微型浏览器中,数组堆栈是一个经常被使用的组件,因此这部分的效能会影响整个微型浏览器的效能。
所谓的数组堆栈是指先配置一块内存,用来存放每次推入(push)和取出(pop)的数据,可是这样有个先天的缺点就是必须是固定长度的堆栈,若是超过堆栈的长度,程序就很可能出问题。
所以我们使用 realloc 的方式来改善这个缺点。
底下的程序代码是我们实作的原理,我们将每个堆栈的数据当成只有四个字节:我们在开始处先判断堆栈的指针是否为真,若为空的,先配置一块预设大小的内存,下次再有数据需要推入时,我们会去检查他的大小,若是配置的内存超过他所能够推入的数据,那我们就利用 realloc 重新配置一块大小为两倍内存空间在同一个指针位置。
观念很简单,主要的用意是要达成利用数组的方式实作堆栈,如此存取快速,又可以克服数组只能用在固定大小的堆栈,而取出数据时只需要将内存空间写成默认值,不需要将内存释放。
我们测试效能之后,发现和一般利用动态配置内存串成堆栈的方式相比,存取 1000000 比数据快了将近有 40 倍之多。
因篇幅有限,整套API实作程序代码的,也就不再详述。
可移植性以可移植性而言,在微型浏览器的设计中,我们将微型浏览器中与平台相关的部分切割出来成为单一模块。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XMLDOM是用来访问和操作XML文档的编程接口规范。
1、简介
XMLDOM被设计为可用于任何语言和任何操作系统。
借助DOM,程序员可以创建XML文档、遍历其结构,增、改、删其元素。
DOM将整个XML文档视作一棵树,文档级的元素是树的根。
2、MS的XML解析,IE5.0以上。
是一个COM组件,至少包含下列对象:
(1)Micosoft.XMLDOM
(2)Micosoft.XMLDOM.parseError,有如下属性:
(5)NodeList的W3C规定的属性和方法。
async:一个布尔标识,说明请求是否为异步的。
如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作
userID 用户ID,用于服务器身份验证
password 用户密码,用于服务器身份验证
XMLHTTP对象的Send方法
用Open方法对Request对象进行初始化后,调用Send方法发送XML数据:poster.send XML-data
Send方法的参数类型是Variant,可以是字符串、DOM树或任意数据流。
发送数据的方式分为同步和异步两种。
在异步方式下,数据包一旦发送完毕,就结束Send 进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。
XMLHTTP对象中的readyState属性能够反映出服务器在处理请求时的进展状况。
客户机的程序可以根据这个状态信息设置相应的事件处理方法。
属性值及其含义如下表所示:
值说明
0 Response对象已经创建,但XML文档上载过程尚未结束
1 XML文档已经装载完毕
2 XML文档已经装载完毕,正在处理中
3 部分XML文档已经解析
4 文档已经解析完毕,客户端可以接受返回消息
客户机处理响应信息
客户机接收到返回消息后,进行简单的处理,基本上就完成了C/S之间的一个交互周期。
客户机接收响应是通过XMLHTTP对象的属性实现的:
● responseTxt:将返回消息作为文本字符串;
● responseXML:将返回消息视为XML文档,在服务器响应消息中含有XML数据时使用;
● responseStream:将返回消息视为Stream对象。
下面的xml文件是动态生成的最后用xmlHTTP传送出去,这是一个在客户端JavaScript脚本里的内容,当然你也可以写在服务器,但是要相应的改一些东西:(仅供大家参考,了解它的用法)
var xmlDoc=new ActiveXObject("MSXML2.DOMDocument");
flag=xmlDoc.loadXML("");
newNode =xmlDoc.createElement("编码")
MarkNode=xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("StartMark")
MarkNode.appendChild(newNode)
newNode =xmlDoc.createElement("EndMark")
newNode.text=EndMark;
MarkNode.appendChild(newNode)
newNode =xmlDoc.createElement("日期")
DateNode=xmlDoc.documentElement.appendChild(newNode); newNode =xmlDoc.createElement("StartDate");
newNode.text=StartDate;
DateNode.appendChild(newNode)
newNode =xmlDoc.createElement("EndDate")
newNode.text=EndDate;
DateNode.appendChild(newNode);
newNode =xmlDoc.createElement("数量")
SLNode =xmlDoc.documentElement.appendChild(newNode); newNode =xmlDoc.createElement("StartSL")
newNode.text=StartShuL
SLNode.appendChild(newNode)
newNode =xmlDoc.createElement("EndSL");
newNode.text=EndShuL
SLNode.appendChild(newNode);
newNode =xmlDoc.createElement("单价")
DJNode =xmlDoc.documentElement.appendChild(newNode) newNode =xmlDoc.createElement("StartDJ")
newNode.text=StartDanJ;
DJNode.appendChild(newNode);
newNode =xmlDoc.createElement("EndDJ")
newNode.text=EndDanJ;
DJNode.appendChild(newNode);
newNode =xmlDoc.createElement("金额")
JENode =xmlDoc.documentElement.appendChild(newNode) newNode =xmlDoc.createElement("StartJE")
newNode.text=StartJinE
JENode.appendChild(newNode)
newNode =xmlDoc.createElement("EndJE")
JENode.appendChild(newNode)
newNode =xmlDoc.createElement("仓库代码")
newNode.text=CK;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("票号")
newNode.text=RKPH;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("单位代码")
newNode.text=CorpName;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("BiaoShi")
newNode.text=Biaoshi
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("FindCate")
newNode.text=FindCate
xmlDoc.documentElement.appendChild(newNode)
var xh =new ActiveXObject("MSXML2.XMLHTTP")
xh.open("POST","Find.asp",false)
xh.setRequestHeader("Content-Type","text/xml")
xh.setRequestHeader("Content-Type","gb2312")
xh.send(xmlDoc);
我的每一个newNode的text值是一个变量,也就是我客户端form 中input的值。