XML DOM(Document Object Model)

1、XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。
2、节点(XML 文档中的每个成分都是一个节点):
        整个文档是一个文档节点;
        每个XML元素是一个元素节点;
        包含在XML元素中的文本是文本节点;
        每一个XML属性是一个属性节点;
        注释是注释节点;
3、加载XML文档

    if (window.XMLHttpRequest)
    {
      // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
      xhttp=new XMLHttpRequest();    //创建XMHHTTP对象
    }
    else
    {
      // IE6, IE5 浏览器执行代码
      xhttp=new ActiveXObject("Microsoft.XMLHTTP");//创建XMHHTTP对象
    }
    xhttp.open("GET","books.xml",false);    //打开XMLHTTP对象
    xhttp.send();    //向服务器发送请求
    xmlDoc=xhttp.responseXML;    //设置响应为XML DOM对象

4、加载XML字符串

    if (window.DOMParser)
    {
      parser=new DOMParser();
      xmlDoc=parser.parseFromString(text,"text/xml");
    }
    else
    {
       // Internet Explorer
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async=false;
      xmlDoc.loadXML(text);
    }

5、XML DOM Node对象

    属性
    (xmlDoc文档节点,documentElement根节点)
    nodeName         节点的名称;元素的标签名,属性的是属性名,文本的是#text,文档的是#documennt;
    nodeValue        节点的值;元素是undefined,文本是本身,属性是属性值;
    nodeType         节点类型;元素1,属性2,文本3,注释8,文档9;
    parentNode       节点的父节点;
    childNode        节点的子节点;
    childNodes       节点的子节点列表;
    lastChild        节点的最后一个子节点;
    firstChild       节点的第一个子节点
    neSibling        下一下同级节点
    previousSibling  上一个同级节点
    attributes       节点的属性节点;
    length           节点列表的长度,即节点数量
    baseUri          节点的绝对基准URI
    localName        节点名称的本地部分;
    namespaceURI     节点命名空间URI;
    ownerDocument    节点根元素;
    prefix           设置或返回节点命名空间前缀;
    textContent      返回节点及其子节点的文本内容;
    对象方法
    x.getElementsByTagName(name)    获取带有指定标签名称的所有元素;多个同级节点用[n]数组位进行定位区分;
    x.getAttributeNode(name)        获取name的属性;
    x.setAttributeNode(node)        改变节点属性;
    x.setAttribute(attr,str)        改变或新建属性;
    xmlDoc.createAttribute(name)    创建属性节点;后用setAttributeNode将节点添加到相应位置
    x.appendChild(node)             向x插入子节点;
    x.removeChild(node)             向x删除子节点;删除节点本身x.parentNode.removeChild(x);
    x.replaceChild()                替换子节点;
    xmlDoc.createElement(name)      创建元素节点,后需要用appendChild(node)来添加到节点树中去;
    xmlDoc.createTextNode(name)     创建文本节点;后需要用appendChild(node)来添加到节点树中去;
    xmlDoc.createCDATASection(name) 创建CDATA Section节点;
    xmlDoc.createComment(str)       创建注释节点,后需要用appendChild(node)来添加到节点树中去;
    x.insertData(offset,str)        向文本节点添加文本,offset为开始添加位置;
    x.cloneNode(bool)               复制节点,参数用于指示被克隆的节点是否包括原节点的所有属性和子节点;
    x.compareDocumentPosition(node) 比较两个节点的文档位置;
    x.hasAttributes()               返回节点是否拥有某属性;
    x.hasChildNodes()               返回节点是否拥有子节点;
    x.insertBefore()                在已有节点前插入节点;
    x.isEqualNode()                 比较两个节点是否相等;
    x.isSameNode()                  检查两个节点是否是同一个节点;
    x.lookupNamespaceURI()          返回匹配指定前缀的命名空间URI;
    x.lookPrefix()                  返回匹配指定命名空间URI的前缀;
    x.getFeature(feature,version)   返回DOM对象,此对象可执行带有指定特性和版本的专门的API;
    x.getUserData(key)              返回与节点上键关联的对象;
    x.isSupported(feature,version)  返回指定特性是否在此节点上得到支持;
    x.setUserData(key,data,handler) 把对象关联到节点上的键;
    x.normalize()                   把节点下的所有文本节点放置到一个“标准”的格式中;

6、XML DOM Document对象

    属性
    nodeName           节点名称;
    nodeType           节点类型;
    nodeValue          节点值;
    async              规定XML文件的下载是否应当被异步处理;
    childNodes         返回文档的子节点的列表;
    doctype            返回与文档相关的文档类型;
    documentElement    返回文档根节点;
    documentURI        设置或返回文档的位置;
    domConfig          返回normalizeDocument()    被调用时所使用的配置;
    firstChild         返回文档的第一个子节点;
    lastChild          返回文档的最后一个子节点;
    implementation     返回处理该文档的DOMImplementation对象;
    inputEncoding      返回文档的编码方式;
    strictErrorChecking设置或返回是否强制进行错误检查;
    xmlEncoding        返回文档的XML编码;
    xmlVersion         设置或返回文档的XML版本;
    xmlStandalone      设置或返回文档是否为standalone;
    方法
    adoptNode(sourceenode)        从另一个文档向本文档选定一个节点,然后返回被选节点;
    createAttribute(name)         创建带有指定名称的属性节点;
    createAttributeNS(uri,name)   创建带有指定名称和命名空间的属性节点;
    createCDATASection()          创建CDATA区段节点;
    createComment()               创建注释节点;
    createDocumentFragment()      创建空的DocumentFragment对象,并返回此对象;
    createElement()               创建元素节点;
    createElementNS()             创建带有指定命名空间的元素节点;
    createEntityReference(name)   创建EntityReference对象,并返回此对象;
    createProcessingInstruction() 创建ProcessingInstruction对象,并返回此对象;
    createTextNode()              创建文本节点;后需要用appendChild;
    getElementById(id)            返回指定Id属性的元素,如果不存在则返回null;
    getElementByTagName()         返回带有指定名称的所有元素的NodeList;
    getElementByTagNameNS()       返回带有指定名称和命名空间的所有元素的NodeList;
    importNode(nodetoimport,deep) 从另一个文档向本文档选定一个节点。该方法创建源节点的一个副本。如果deep为true,则将导入指定节点的所有子节点,否则只导入节点本身;
    normalizeDocument()           把节点下的所有文本节点放置到一个“标准”的格式中;
    renameNode()                  重命名元素或属性节点;

7、XML DOM Element对象

因为Element也是一种节点,所以它可以继承Node对象的属性和方法;以下是除Node所具有外的属性和方法。

    属性
    tagName            返回元素的名称;
    schemaTypeInfo     返回与元素相关联的类型信息;
    方法
    getAttributeNS()        返回带命名空间的属性值;
    getAttributeNodeNS()    以attribute对象返回带命名空间的属性节点;
    getElementByTagNameNS() 返回匹配的带有命名空间的节点及子节点的NodeList;
    setAttributeNS()        添加新的带命名空间的属性;
    setAttributeNodeNS()    添加新的带命名空间属性节点;
    hasAttributeNS()        返回元素是否拥有匹配指定名称和命名空间的属性;
    removeAttribute()       删除指定属性;
    removeAttributeNS()     删除指定带有命名空间的属性;
    removeAttributeNode()   删除指定的属性节点;

8、XML DOM Attr对象

    属性
    name             属性的名称;
    localName        属性的名称本地部分;
    namespaceURI     属性命名空间URI;
    nodeName         节点名称;
    nodeType         节点类型;
    nodeValue        节点值;
    baseURI          返回属性的绝对基准URI;
    isId             返回属性是否是Id类型的bool值;
    ownerDocument    返回属性所属的根元素;
    ownerElement     返回属性所附属元素的节点;
    prefix           命名空间前缀;
    schemaTypeInfo   与属性相关联的类型信息;
    specified        如果属性值被设置在文档中,返回true,否则false;
    textContent      属性的文本内容;
    value            属性的值;

9、XML DOM Text    对象

    属性
    data          元素或属性的文本;
    length        元素或属性的文本长度;
    wholeText     以文档的顺序向此节点返回相邻文本节点的所有文本;
    isElementContentWhitespace    判断文本节点是否包含空白字符;

    方法
    appendData()        向节点追加数据;
    deleteData()        从节点删除数据;
    insertData()        向节点插入数据;
    replaceData()       替换节点数据;
    replaceWholeText()  用指定文本来替换此节点及所有相邻的文本节点;
    splitText()         在指定偏移处将此节点拆分为两个节点,同时返回包含偏移处之后的文本的新节点;
    substringData()     从节点提取数据;

10、XML DOM CDATASection对象

    属性
    data          节点文本;
    length        长度;
    方法
    appendData()        向节点追加数据;
    deleteData()        从节点删除数据;
    insertData()        向节点插入数据;
    replaceData()       替换节点数据;
    splitText()         在指定偏移处将此节点拆分为两个节点,同时返回包含偏移处之后的文本的新节点;
    substringData()     从节点提取数据;

11、XML DOM Comment对象

    属性
    data          节点文本;
    length        长度;
    方法
    appendData()        向节点追加数据;
    deleteData()        从节点删除数据;
    insertData()        向节点插入数据;
    replaceData()       替换节点数据;
    splitText()         在指定偏移处将此节点拆分为两个节点,同时返回包含偏移处之后的文本的新节点;
    substringData()     从节点提取数据;

12、XMLHttpRequest对象

    属性
    responseXML        作为XML数据响应数据;
    responseText       返回作为一个字符串的响应数据;
    status             返回状态数;
    statusText         返回状态文本;
    onreadystatechange 存储函数,在每次readyState属性变化时被调用;
    readyState         存放了XMLHttpRequest的状态,0请求未初始化,1服务器建立连接,2收到的请求,3处理请求,4请求完成和响应准备就绪;
    方法
    send(string)               发送请求到服务器,sttring仅用于POST请求;
    abort()                    取消当前请求;
    open(method,url,async,uname,pswd)    规定请求类型;
    getResponseHeader()        返回指定的头信息;
    getAllResponseHeaders()    返回头信息;
    setRequestHeader()         把值添加到要发送的头文件;

原文地址:https://www.cnblogs.com/aland-1415/p/9010947.html

时间: 2024-08-01 01:29:13

XML DOM(Document Object Model)的相关文章

文本对象模型(Document Object Model)

本文内容: 1. 概述 2. DOM中的节点类型 3. DOM节点的选取 4. 存取元素属性 5.DOM元素的增删 6.小结 ★ 概述 文本对象模型(DOM)是一个能够让程序和脚本动态访问和更新文档内容,结构和样式的语言平台,提供了标准的HTML和XML对象集,并有一个标准的接口来访问操作他们. --摘自W3C 文本对象模型(Document Object Model,DOM),最初是W3C为解决浏览器混战时代不同浏览器环境之间的差别而制定的模型标准,然而主要是针对IE和Netscape Nav

DOM(Document object madle) 文档对象模型: 元素节点 文本节点 属性节点

[DOM树节点] DOM 节点分为三大类:元素节点 文本节点 属性节点 文本节点 属性节点 为元素节点的两个子节点 通过getElement系列方法,可以去到元素节点. [查看节点] 1.document.getElementById:通过ID获取唯一的节点;多个同名ID,只会取第一个: 2.document.getElementsByName:通过name取到一个数组,包含1到多个节点: 使用方式:通过循环,取到每个节点.循环次数:从0开始,<数组.length   [查看和设置属性节点] 1

文档对象模型(Document Object Model--DOM)

文档对象模型(Document Object Model--DOM) 1.DOM a) 允许脚本和程序动态读取和更新文档内容.结构和样式的语言和平台 b) 使用DOM操作HTML页面可以不用每次从服务器传输整个页面 c) DOM是针对HTML和XML的而应用程序接口 2.DOM结构 a) DOM的树形结构 i.文档中的所有元素都是树的节点 ii.每个节点都是Node对象 iii.每种Node对象都定义了特定的属性和方法 b) DOM内部对象常用属性和方法 i.属性 .attributes:如果是

BOM—浏览器对象模型(Browser Object Model)

 1,javascript   组成部分: 1.ECMAscript(核心标准):    定义了基本的语法,比如:if for 数组 字符串 ... 2.BOM  : 浏览器对象模型(Browser Object Model) 2,BOM 的组成部分: 1.window对象 每一个子窗口对应的又是一个window对象 2. screen对象 3.location对象 4.history对象 5.Navigator对象 6.定时器 (两种) 7.弹框(三种) 8. document (DOM-文档

BOM (Browser Object Model) 浏览器对象模型

l对象的角色,因此所有在全局作用域中声明的变量/函数都会变成window对象的属性和方法; // PS:尝试访问未声明的变量会抛出错误,但是通过查询window对象,可以知道某个可能未声明的对象是否存在; var newValue = oldValue; // =>ReferenceError:oldValue is not defined; var newValue = window.oldValue; // =>undefined; 1.window对象的属性和方法window对象有一系列

Appium+Python之PO模型(Page object Model)

思考:我们进行自动化测试时,如果把代码都写在一个脚本中,代码的可读性会变差,且后期代码维护也麻烦,最好的想法就是测试对象和测试用例可以分离,可以很快定位问题,代码可读性高,也比较容易理解.这里推荐大家在自动化框架中加入PO模型思想,那什么是PO模型呢? 所谓的PO就是page object,通俗解释一下就是每个页面当成一个对象,给这些页面写一个类,主要就是完成元素定位和业务操作:至于测试脚本要和ta区别开来,需要什么去这些页面类去调用即可. 上面流程图意思就是测试用例类调用不同的页面类,页面类调

JavaScript笔记03——文档对象模型(Document Object Model,简称DOM)

Dom技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等,Dom技术使得页面的交互性大大地增强.[1] DOM实际上是以面向对象方式描述的文档模型.DOM定义了表示和修改文档所需的对象.这些对象的行为和属性以及这些对象之间的关系.可以把DOM认为是页面上数据和结构的一个树形表示,不过页面当然可能并不是以这种树的方式具体实现. 通过 JavaScript,您可以重构整个 HTML 文档.您可以添加.移除.改变或重排页面上的项目. 要改变页面的某个东西,J

DOM The Document Object Model 以树状结构组织的文档对象模型

DOM实际上是以面向对象方式描述的对象模型,它将文档建模为一个个对象,以树状的结构组织(本文称之为“文档树”,树中的对象称为“节点”). html\xml文档解析后会以DOM的形式保存在内存中. html\xml 和dom只是相同信息的不同保存形式. html\xml便于人类阅读: dom便于机器阅读: 原文地址:https://www.cnblogs.com/feng9exe/p/12200470.html

Java中Xml解析(四种方法)

1.DOM,Document Object Model,基于DOM的XML分析器将XML文档转换成一个对象模型的集合(DOC树),通过对此模型操作实现对XML文档数据的操作,可以在任何时候对XML文档的任何一部分数据进行访问. DOC强制使用树模型来访问XML文档中信息 很灵活,当XML文档较大时对内存需求比较高,而且对结构复杂的DOC树的遍历也很耗时,对机器要求比较高. // step 1: 获得dom解析器工厂(工作的作用是用于创建具体的解析器) DocumentBuilderFactory