读书人

1.XML温习、HTML DOM 复习 2.simpleX

发布时间: 2013-04-07 12:50:11 作者: rapoo

1.XML复习、HTML DOM 复习 2.simpleXML方式解析XML 3.XPath 4,MVC

概念: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方法


读书人网 >CSS

热点推荐