xml

来源:互联网 发布:剑网三长歌门捏脸数据 编辑:程序博客网 时间:2024/06/18 04:45
sprintf()    //格式化xml数据



<?xml   version=“1.0” encoding=“utf-8”?>
功能:告诉浏览器在解析当前文档时,使用何种标准
参数说明:
version:xml版本号,目前最新版为1.1
encoding:编码格式,可以是utf-8或gbk等格式,但是建议使用utf-8
standalone:当前xml文档是否依赖外部DTD约束文档,如果依赖,此值为no,否则为yes

CDATA:Character Data
作用:把标签当做普通文本内容
语法:<![CDATA[内容]]>

<?xml-stylesheet  type="text/css"  href="style.css"?>//引入外部css样式


6、定义元素
标签、标记、元素、节点
基本语法:
<!ELEMENT   元素名称    元素类型>
定义元素要谨记:代码要从上往下依次定义

元素类型:
(#PCDATA) :该类型可包含任何字符数据,但是不能包含任何子元素
EMPTY:该类型不能包含子元素和文本,但可以有属性
ANY:该类型可以包含任何在DTD定义的元素内容,常用于根元素
(子元素*) :定义子元素可以出现0或多次
(子元素+) :定义子元素可以出现1或多次
(子元素?) :定义子元素可以出现0次或1次
(子元素1|子元素2|子元素3…) :互斥元素 //只能有一个出现

8、定义属性
基本语法:
<!ATTLIST     元素名称     属性名称     属性类型      默认值>

属性类型:
CDATA  字符或数字
(en1|en2|……)  枚举类型
ID  属性唯一
IDREF  引用之前已声明的ID类型值

默认值:
#REQUIRED 必填
#IMPLIED 可选
#FIXED 固定值
值 默认值

9、定义实体
定义实体就是为一段内容指定一个名称,使用时通过这个名称就可以引用其所代表的内容(实体就是XML文档中变量)

1)引用实体
基本语法:
<!ENTITY   实体名称 “实体的值”>
调用时语法:
&实体名称;
注:在内部DTD中定义在XML文档中使用的一种实体

2)参数实体
基本语法:
<!ENTITY     %     实体名称     “实体的值”>
调用时语法:
%实体名称;

*********************************************************************

定义rss根节点
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/"></rss>
*********************************************************************
内部DTD
基本语法:
<!DOCTYPE  根元素  [
    //约束规则…
]>

外部DTD
基本语法:
<!DOCTYPE   根元素    SYSTEM    “外部DTD文档的URI”>

公用DTD
基本语法:
<!DOCTYPE 根元素  PUBLIC  “DTD标识名”  “公用DTD的URI”>

*********************************************************************
定义元素
标签、标记、元素、节点
基本语法:
<!ELEMENT   元素名称    元素类型>

元素类型:
(#PCDATA) :该类型可包含任何字符数据,但是不能包含任何子元素
EMPTY:该类型不能包含子元素和文本,但可以有属性
ANY:该类型可以包含任何在DTD定义的元素内容,常用于根元素

*********************************************************************

PHP相关类
常用类:
DOMDocument :开辟内存空间,形成面(文档类)
DOMNodeList :文档节点类(串)
DOMNode :节点类
DOMElement :元素类

① 开辟内存空间,形成面
要用到的知识点:
DOMDocument::__construct (
        [ string $version [, string $encoding ]]
)
参数说明:
$version:要解析XML的版本号,默认1.0
$encoding:编码格式,默认utf-8

② 载入XML数据到内存,形成DOM树
要用到的知识点:
mixed DOMDocument::load ( string $filename)
参数说明:
$filename:要载入XML文件名称

③ 获取同级兄弟节点(如name节点),形成”串“
要用到的知识点:
DOMNodeList DOMDocument::getElementsByTagName ( string name )
参数说明:
name :要获取元素的节点名称

④ 获取要操作的节点并输出其值
要用到的知识点:
DOMNodeList length :获取节点的数量(长度)
DOMNode DOMNodelist::item ( int $index ) :通过元素的索引获取相应的节点,索引从0开始

输出其节点的值
nodeName  节点名称
nodeValue  节点值

PHP增加XML数据
PHP增加XML数据五步走:
第一步:开辟内存空间,形成”面“
第二步:载入XML数据到内存,形成DOM树
第三步:创建新节点
第四步:追加子节点到父节点
第五步:保存内存中的数据到XML文档中

要用到的知识点:
DOMElement DOMDocument::createElement ( string $name [, string $value ] )
参数说明:
$name :创建新节点名称
$value :新节点的值(可选)

DOMNode DOMNode::appendChild ( DOMNode $newnode )
参数说明:
$newnode :要追加的新节点

说明:在PHP DOM模型,元素的创建以及追加没有顺序要求,可以从上往下创建也可以从下往上创建。

int DOMDocument::save ( string $filename )
参数说明:
$filename :要保存文件的文件

*************************************************************************
PHP删除XML数据
PHP删除XML数据六步走:
第一步:开辟内存空间,形成”面“
第二步:载入XML数据到内存,形成DOM树结构
第三步:找到要删除的老节点
第四步:找到其父节点
第五步:删除老节点
第六步:保存内存中的数据到XML文档中

要用到的知识点:
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
参数说明:
$oldnode :要删除的老节点
************************************************************************
PHP更新XML数据
1)值修改五步走
第一步:开辟内存空间,形成”面“
第二步:载入XML数据到内存,形成DOM树
第三步:找到要修改的节点
第四步:通过nodeValue修改其值
第五步:保存内存中的数据到XML文档中

2)节点修改七不走
第一步:开辟内存空间,形成”面“
第二步:载入XML文档到内存,形成DOM树结构
第三步:找到要修改的老节点
第四步:创建新节点
第五步:找到父节点
第六步:进行更新操作
第七步:保存内存中的数据到XML文档中

要用到的知识点:
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
参数说明:
$newnode :创建的新节点
$oldnode :要修改的老节点

***********************************************************************

属性操作
1)创建元素时设置属性
DOMAttr DOMElement::setAttribute( string $name , string $value )
参数说明:
$name :属性的名称
$value :属性的值

2)修改元素属性
DOMAttr DOMElement::setAttribute( string $name , string $value )
参数说明:
$name :属性的名称
$value :属性的值

如果一个元素具有某个属性,那么setAttribute就是更新操作,否则就是添加操作


3)删除元素属性
bool DOMElement::removeAttribute ( string $name )
参数说明:
$name :删除元素属性

bool DOMElement::hasAttribute ( string $name ) :判断元素是否具有指定的属性
bool DOMNode:: hasAttributes ( void ) :判断元素是否具有属性
string DOMElement::getAttribute ( string $name ) :获取元素的属性

*********************************************************************

SimpleXML模型

读取XML数据
SimpleXMLElement simplexml_load_file ( string $filename)
SimpleXMLElement::__construct ( string data)
功能:载入XML文件到内存并生成SimpleXML对象,其省略了开辟内存空间以及生成DOM树的过程。
参数说明:
$filename :要加载的xml文件名称
*********************************************************************

添加节点
如果使用simplexml模型添加节点有一个前提:节点的创建必须从上往下依次创建,顺序是不能颠倒的。

要用到的知识点:
public SimpleXMLElement SimpleXMLElement::addChild ( string $name [, string $value] )
参数说明:
$name :要添加的节点名称
$value :要添加节点的值

public mixed SimpleXMLElement::asXML ([ string $filename ] )
参数说明:
$filename :要保存文件的名称

属性操作
1)添加属性
public void SimpleXMLElement::addAttribute ( string $name [, string $value [, string $namespace ]] )


参数说明:
$name :属性名称
$value :属性的值
0 0
原创粉丝点击