·概念:js通过DOM实现对HTML文档的更删改查操作。
DOM,文档对象模型,将文档转化成对象。
主流浏览器中内置文档解析器。
·规则:HTML文档对应的节点:document。
document对象时html标签转化成的对象,可以对
html文档进行操作。
·元素节点:将每个html标签转化成对应的节点。
增:document.createElement()、
appendChild().
删:removeElement()。
查:getElementsByTagName()。
getElementById()。
getElementsByName()。
·属性节点:获得属性:getAttribute();
设置属性:setAttribute();
删除属性:removeAttribute();
创建属性:createAttribute()。
·文本节点:创建文本节点:document.createTextNode
('asdasd');
修改文本节点可以重新给innerHTML赋值。
·查找节点:parentNode firstChild lastChild
·删除节点:removeChild()。
·图片切换:动态图片切换
Count++ 后++先运算后值增
序号和图片同步显示
也就是显示第一张图片时,序号1高亮显示,
以此类推
鼠标点击序号显示当前对应的图片
·XML被称为web的世界语,可拓展新兴标记语言 Extensive
Make Language
·用途:存储和传输数据
·语法规则:在表示非常复杂的数据是采用xml或者原生态
json。
必须有一个根元素。
属性值用双引号(建议)。
所有元素必须闭合。
如果XML中有特殊字符,需要实体引用。
& ---- & ‘ ---- &apos “ ----
"
·PHP操作XML:DOM解析:将XML文档转化成PHP可以操作的
对象。DOMDocument操作整个节点树、DOMElement 操作DOM
节点树中某个元素节点、DOMNodeList 操作DOM节点树中某
些元素的集合。
·var_dump:返回数据类型
·操作步骤:实例化当前需要的对象。
加载XML文档。
通过标签名找到元素。
通过DOMNodeList对象的item()方法根据索
引获得某个节点。
如果下面还有子元素,继续调用
getElementByTagName寻找。
最后通过nodeValue获得所要的值。
·通过PHP创建一个XML:在整个文档内创建一个节点。
在新建的节点增加内容。
确定节点的位置
用save方法保存。
·$doc ->formatOutput = true;
将编写的代码可视化(一级一级的结构显示)
但是,不建议可视化(建议$doc ->formatOutput =
false;)
·不管是创建元素节点还是属性节点,创建的时候不去确定
它的位置,所以是DOMDocument对象去创建,创建完之后再
去确定它的位置
·header("Content-Type:text/html;charset=utf-8");
告诉浏览器,我给你发送的是文本,编码为utf-8 清查收
·获得属性值,通过数组下表形式,数组下标要大写
·XML文件中含有英文字符和汉字的时候,需要使用<!
[CDATA[]]>
·DOM方式和SAX方式的异同:1,先将XML文件在内存中解析
成节点树,如果XML文件非常大,会占用很大的内存
SAX:不需要在内存中生成节点树,而是遇到标签就解析
2,SAX解析速度比DOM要快
3,如果XML结构有问题的话,
DOM方式无法解析,因为无法在内存中生成节点树;SAX会一
直解析,知道错误的发生地
4,DOM一般用于解析复杂的
XML;SAX适用于解析数据量特别大的XML文件
·使用simpleXML解析XML文件:php专门提供的一种简单的
操作XML文件的对象。
·实例化对象:$text = file_get_contens('db.xml');
$simpleXML = new simpleXMLElement($text);
·访问某一个节点:1,访问元素的属性,通过数组下标的
形式
$id = $books[0]['id'];
2,如果获得的是一个对象的集合,
foreach遍历
3,如果要找具体的某一个元素 通过数
组索引
$first_book = $books[0];
foreach($books as $book){
echo $book->author;
echo $book->title;
}
//增加一个节点:
//我们可以把 $sxe 看作是文档的根节点
$new_book = $sxe ->addChild('book');
//在刚创建的book节点上 增加一个title 内容是
侠客行
$new_book ->addChild('title','侠客行');
//保存
$sxe ->asXML('book3.xml');
·删除节点
Unset(删除的节点)
$book = $sxe ->book[4];
unset($book);
·修改节点
$sxe ->book[3]->author = '金庸';
·XPath:用路径来找到XML的节点的语言。
·DOM:
内存中节点树,通过节点之间的关系来定位的
·SAX:
按照开始标签,按顺序一个一个查找,只适合读取数据
·SimpleXML :
将元素转化成对象,相同的元素转化成对象的集合,节点
之间没有关系
$bookshelf ->book
·DOMDocument 定位XML ,就不难理解
因为节点之间有关系的
·XPath的定位的功能是通过DOMXPath对象来实现的
·DTD验证:
·格式良好的:符合XML语法规则的就是格式良好的
合法的:经过验证
·DTD:
Document Type Definition 文档类型定义
DTD:
Schema
DTD
·XML文件:
格式良好的XML:只要符合语法规范,就是格式良好的
合法的: 经过验证并且验证通过的就是合法的
·先将DTD验证规则和XML文件关联起来
<!DOCTYPE 根元素 SYSTEM “dtd文件”>
现在已经关联起来,但是还没有验证
·什么时候验证呢?
Php文件加载xml文件的时候验证
alidateOnParse
·定义DTD的规则:
应该有那些元素
元素的位置如何
元素的属性
·MVC
M Model 模型
V View 视图
C Controller 控制器
·Ecshop php 的代码和html相分离 include
Smarty 模板引擎-------就是将php html 分离,分
配数据,显示模板内容
现在 负责处理数据的逻辑 和 php代码还写在一起
将数据的处理也分离出来
Model
·model 处理数据的,原则是:
每一张数据表对应一个模型,例如,需要操作user数据表
,在model里面就应该有userModel这个文件
·views存放所有的模板文件(显示),因为有前台和后台
,前台的放在home目录下,后台的放到admin目录下
·控制器,负责逻辑的也分为前台和后台,所以前台的也是
放在home目录下,后台的放在admin目录下
·插件目录(类似于smarty)
·通过index.php访问,实现数据的增删改查 传递act参数
我们在index.php里,传参数,做判断,实现不同的功能
·例如:
做一个商品的管理
userController(前面是控制器名)+Controller
我们还要采用面向对象的思想去实现
类
·属性
·方法
·对象
·searchAction
我们将控制器所做的所有的动作,定义为一个函数,统一
xxxAction
·例如用户传递c=goods&a=search
代表调用goodsController控制器的searchAction方法