【你也能从零基础学会网站开发】Web建站之javascript入门篇 简单介绍DOM与XML

🚀 个人主页 极客小俊
✍🏻 作者简介:程序猿、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注

XML概述

XML是Extensible Markup Language的缩写,它是一种类似于HTML的标记语言,用来描述数据的层次结构及存储数据 。

XML应用背景

XML技术已经为成为中间数据的标准格式,使用XML描述的数据可以在任何系统间进行数据交换。近年来XML已经广泛的使用在了应用开发的各个方面,当中也包含Internet。在Web开发中,XML用于描述各种各样的数据用以交换

比如流行的Ajax技术就使用XML来描述在浏览器端到服务器端的数据。

XML是一种描述数据结构的语言,与之相应的是XML语言解析器。
如果没有解析器它所描述的数据就无法理解,同时也失去了意义。
程序接口对程序员来说统称为API,最先出现针对XML的API是SAX(Simple API for XML),它是一套程序包。

SAX提供了一套基于事件的XML解析的API。
SAX解析器从XML文件的开头出发,每当遇到节点标签、文本或者其他的XML语法时,就会激发一个事件。
事件处理程序由应用开发人员编写,因此可以在事件处理程序中决定如何处理XML文件当前节点的数据。

W3C的DOM规范制定了一系列标准用于描述结构化、层次化的数据

如图

例如HTML和XML, 使用DOM接口处理XML文件是当前WEB客户端开发常用的方法,大多数浏览器都实现W3C制定的DOM接口

节点的层次

DOM以树的形式组织文档中的数据,树的结构也就是由HTML或XML文档的元素节点组成的结构。

遍历一个文档中所有结点就是遍历DOM树的操作,第一个节点使用一个Node对象来表示,该对象提供了操作节点的接口 , document是最顶层的节点,所有的其他节点都是附属于它的 。

举个栗子

XML文档节点层次如下XML代码如下

<?xml version="1.0" encoding="gb2312">            <!--XML文件开始-->
<products>                    <!--产品集合--><product>                    <!--产品--><name>IBM Thinkpad R61i 7732CJC</name><!--名字--><price>5300</price>            <!--价格--></product>                <!--产品结束--><product>                    <!--产品--><name>CGX</name>            <!--名字--><price>100</price>            <!--价格--></product>                <!--产品结束-->
</products>                    <!--产品结束-->
<customers>                    <!--客户集合-->
<customer>                <!--客户--><name>Peter</name>        <!--名字--><phone>123456</phone>        <!--电话-->
</customer>
<customer>                <!--客户--><name>Zognan</name>        <!--名字--><phone>456789</phone>        <!--电话-->
</customer>
</customers>

DOM介绍

DOM接供操作遵循DOM规范文档的能力,使用DOM来操作页面中的元素 。
诸如,更改元素显示的内容、添加删除节点、遍历统计节点、过滤特定内容等等 。
访问相关的节点

JavaScript在Web客户端的编程工作基本上都围绕DOM展开,DOM的常用操作就是创建、访问、修改各个元素节点
childNodes:每一个节点的所有下一级子节点组成一个集合,该集合作为该节点的childNodes属性

特定语言的文档模型

DOM模型是以XML为核心,所有遵循DOM规范的文档都可以使用DOM接口来处理。
但已经得到广泛应用的HTML却没有完全遵循DOM规范,因此为了能支持HTML,W3C提出针对HTML的DOM规范。

HTML DOM特性

JavaScript是动态语言,属性、方法、事件在其中称为特性。属性用于描述对象的状态,但在使用上却和事件一样,通过给事件赋予一个函数的地址即可完成绑定的任务,操作方式和给属性赋值一样。

在标准DOM中,通常使用getAttribute和setAttribute操作的特性,但特定于HTML的DOM为能更方便的操作对象的特性,将操作方式统一起来。

使用DOM

下面是Node对象的常用方法和属性:

firstChild,表示头一个子节点。
lastChild,表示最后一个子节点。
hasChildNodes(),判断是否拥有子节点。
childNodes,子节点集合。
parentNode,其父节点的引用。

检测当前HTML文档BODY标签下的所有节点,并将节点名输出 。

处理节点属性

DOM的节点对象都拥有一些从Node对象继承而来的属性,也可以拥有自己独有的属性。
属性可以用来存储一些与节点相关的数据,获取元素的属性getAttribute,设置元素的属性setAttribute(name,value)方法。

访问指定节点

DOM接口提供了更快更方便的方法访问一个指定的节点,例如通过指定节点标签名、节点名称或节点ID来获得目标节点的引用。

getElementsByTagName,该方法返回一个与指定标签名吻合的节点对象的引用
如果传入的标签名为*,则返回文档中所有的节点元素。
getElementsByName,该方法返回与指定name属性相吻合的元素集合。
getElementById,该方法返回与指定ID相同元素节点

创建新节点

DOM接口对节点的操作不仅仅只有访问,还可以为一个节点创建任意数目的子节点 。

例如

createTextNode,创建文本节点。
createDocumentFragment,创建文档碎片。
createElement,通过指定标签名创建节点(元素)

修改节点 :在文档对象(DOM)中,可以动态的插入、删除或替换某一个节点。节点对象(Node)提供实现这些操作的方法,这方法都通过节点对象(Node)来调用。

例如

removeChild,删除一个指定的子节点。
insertBefore,在指定的子节点前插入一个子节点。
replaceChild,用一个节点替换一个指定的节点。
appendChild,在一个元素节点中创建一个元素。 

"👍点赞" "✍️评论" "收藏❤️"

大家的支持就是我坚持下去的动力!

如果以上内容有任何错误或者不准确的地方,🤗🤗🤗欢迎在下面 👇👇👇 留个言指出、或者你有更好的想法,
欢迎一起交流学习❤️❤️💛💛💚💚

更多 好玩 好用 好看的干货教程可以 点击下方关注❤️ 微信公众号❤️
说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/538909.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Cloud Alibaba微服务从入门到进阶(四)(服务发现-Nacos )

Nacos是服务发现组件和配置服务器 作为服务发现注册组件Nacos Server 搭建Nacos Server 下载、启动 访问nacos,默认 用户/密码 nacos/nacos 将应用注册到nacos 加依赖 在SpringCloud子项目中&#xff0c;Feign是属于OpenFeign&#xff0c;Sentinel、Nacos是属于alibaba的&…

使用jquery的autocomplete属性实现联想补全操作

平时使用百度&#xff0c;淘宝等软件搜索时&#xff0c;常见一个搜索框联想提示&#xff0c;感觉确实好用但没有研究过原理&#xff0c;最近恰巧工作中遇到一个同样的场景&#xff0c;不同于大厂使用高端的Python&#xff0c;这次需要使用jQuery的autocomplete属性来自动联想补…

保留数据的重装系统教程!(win10系统)

上车警告&#xff01;&#xff01;&#xff01; 本教程无需思考&#xff0c;跟着操作一步一步来就能完成系统的重装。原理是将C盘系统重装&#xff0c;其他盘符数据保存。适用于系统盘重装数据或更改系统版本。 重要提示&#xff01;&#xff01;&#xff01; C盘有重要学习资…

牛客-DP38 【模板】二维差分

【模板】二维差分_牛客题霸_牛客网 (nowcoder.com) b站有视频&#xff1a;讲解前缀和和差分 二维差分_哔哩哔哩_bilibili 注意&#xff1a;差分的过程叫差分&#xff0c;而不仅仅是d[]这个数组&#xff0c;其他数组经行了差分的操作&#xff0c;就也是差分啊&#xff01;&…

网络原理(网络协议初识)

目录 1.网络通信基础 1.1IP地址 1.2端口号 1.3认识协议 1.4五元组 1.5 协议分层 2.TCP/IP五层&#xff08;或四层&#xff09;模型 2.1网络设备所在分层 2.2网络分层对应 3.封装和分用 1.网络通信基础 网络互连的目的是进行网络通信&#xff0c;也即是网络数据传输&#…

学生时期学习资源同步-1 第一学期结业考试题4

原创作者&#xff1a;田超凡&#xff08;程序员田宝宝&#xff09; 版权所有&#xff0c;引用请注明原作者&#xff0c;严禁复制转载

考研失败, 学点Java打小工——Day3

1 编码规范——卫语句 表达异常分支时&#xff0c;少用if-else方式。   比如成绩判断中对于非法输入的处理&#xff1a; /*>90 <100 优秀>80 <90 良好>70 <80 一般>60 <70 及格<60 不及格*/Testpu…

循环购模式揭秘:消费返利新玩法,电商营销新篇章

大家好&#xff0c;我是吴军&#xff0c;今天要和大家分享的是一种新颖且引人注目的商业模式——循环购模式。或许你曾经听说过消费1000送2000的优惠活动&#xff0c;甚至每天都能领取一定的现金&#xff0c;这些现金还可以提现。你可能会好奇&#xff0c;商家为何要如此慷慨地…

【数据结构】树与堆 (向上/下调整算法和复杂度的分析、堆排序以及topk问题)

文章目录 1.树的概念1.1树的相关概念1.2树的表示 2.二叉树2.1概念2.2特殊二叉树2.3二叉树的存储 3.堆3.1堆的插入&#xff08;向上调整&#xff09;3.2堆的删除&#xff08;向下调整&#xff09;3.3堆的创建3.3.1使用向上调整3.3.2使用向下调整3.3.3两种建堆方式的比较 3.4堆排…

Hack The Box-Monitored

目录 信息收集 rustscan dirsearch WEB web信息收集 snmpwalk curl POST身份验证 漏洞探索 漏洞挖掘 sqlmap 登录后台 提权 get user get root 信息收集 rustscan ┌──(root㉿ru)-[~/kali/hackthebox] └─# rustscan -b 2250 10.10.11.248 --range0-65535 --…

反向传播 — 简单解释

一、说明 关于反向传播&#xff0c;我有一个精雕细刻的案例计划&#xff0c;但是实现了一半&#xff0c;目前没有顾得上继续充实&#xff0c;就拿论文的叙述这里先起个头&#xff0c;我后面将修改和促进此文的表述质量。 二、生物神经元 大脑是一个由大约100亿个神经元组成的复…

鸿蒙到底好不好?要不要搞?

相信各位搞安卓的小伙伴多多少少都了解过鸿蒙&#xff0c;有些一知半解而有些已经开始学习起来了。 鸿蒙到底好不好&#xff1f;要不要搞&#xff1f; Android开发反正目前工作感觉也不好找&#xff0c;即便是上海这样的大城市也难搞&#xff0c;人员挺饱和的。而且年前裁员的…