xml复习

DOM方式和SAX方式的异同

先将XML文件在内存中解析成节点树,如果XML文件非常大,会占用很大的内存。

SAX:不需要在内存中生成节点树,而是遇到标签就解析

2SAX解析速度比DOM要快

3,如果XML结构有问题的话,DOM方式无法解析,因为无法在内存中生成节点树,SAX会一直解析,直到错误的发生地。

simpleXML解析XML文件

SimpleXML专门提供的一种简单的操作 XML文件的对象:

实例化simpleXML对象:

原理:

simpleXMLElement这个对象会将所有的XML的元素转化成对象,相同的元素名转化成对象的集合。

XPath的路径,用来定位(找到)XML元素(节点)

XPath的定位功能是通过DOMPath对象来实现的。

例如:

<?php

$doc=new DOMDocument('1.0','utf-8');
$doc->load('bookshelf.xml');
//我们定位元素是通过DOM方式去定位的
$DOMXPath=new DOMXPath($doc);
//定义查找规则
// 1 通过元素名查找
 //$rule="//title";
 // 2 按照元素间的关系
// $rule="/bookshelf/book/title";
 // 3 通过集合中的索引,注意这里的索引从1开始
// $rule="/bookshelf/book[1]";
// 4 利用子元素进行查找
//$rule="/bookshelf/book[author='jk']";
// 5 利用元素的属性
//$rule="/bookshelf/book[@id='book1']";
// 6 获得元素的属性
//$rule="/bookshelf/book[@id][1]";
 //通过$DOMXPath对象的query()去查询
 $pas=$DOMXPath->query($rule);
 //定位到具体某一个
 $one=$pas->item(0)->nodeValue;

var_dump($one);

DTD

XML文件:格式良好的xml,只要符合语法规范就行

1.先将DTD验证规则和XML文件关联起来

<!DOCTYPE 根元素 SYSTEM 'dtd文件'>

定义元素

<!ELEMENT 元素名 元素特征>

定义属性

<!ATTLIST 元素名 属性名 属性类型 属性的特征值>

CDATA 属性是一个普通值

ID 属性是唯一的标识

#REQUIRED 代表当前的属性是必须的

#IMPLIED 代表当前的属性是可选的。

引用实体

XML文档中使用的实体符号

<!ENTITY 实体名称 "实体的值">

参数实体

DTD文档中使用的实体符号

<!ENTITY % 实体名称 "实体的值">

1MVC

M  Model  模型

V   View   视图

C  Controller  控制器

Ecshop    php 的代码和html相分离  include

Smarty    模板引擎-------就是将php  html 分离,分配数据,显示模板内容

现在 负责处理数据的逻辑 和 php代码还写在一起

将数据的处理也分离出来

Model

1,model 处理数据的,原则是:

每一张数据表对应一个模型,例如,需要操作user数据表,在model里面就应该有userModel这个文件

2views存放所有的模板文件(显示),因为有前台和后台,前台的放在home目录下,后台的放到admin目录下

3,控制器,负责逻辑的也分为前台和后台,所以前台的也是放在home目录下,后台的放在admin目录下

4,插件目录(类似于smarty

通过index.php访问,实现数据的增删改查  传递act参数

我们在index.php里,传参数,做判断,实现不同的功能

例如:

做一个商品的管理

userController(前面是控制器名)+Controller

我们还要采用面向对象的思想去实现

属性

方法

对象

searchAction

我们将控制器所做的所有的动作,定义为一个函数,统一xxxAction

例如用户传递c=goods&a=search

代表调用goodsController控制器的searchAction方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值