xml 知识点梳理 -- 整理自广州传智王老师

WBOY
Freigeben: 2016-08-08 09:26:40
Original
1308 Leute haben es durchsucht

xml知识小结

xml的结构

文档声明:

元素:(标签 标记)

元素属性

一个元素可以有多个属性

属性值一定要用引号(单引号或双引号)引起来

属性名称的命名规范与元素的命名规范相同

元素中的属性是不允许重复的

标签属性所代表的信息也可以被改成用子元素的形式来描述

处理指令

必须以“”作为开头,以“?>”作为结尾

xml指令

xml-stylesheet指令

例: 

注释:

  注释可以在浏览器中显示

XML声明之前不能有注释,注释不能嵌套

 

CDATA区段

语法:

内容

]]>

xml DTD 文档约束

约束文档定义了xml允许出现的元素名称 、属性 、 以及元素出现顺序等

DTD 约束文档分类

内部 DTD

nbsp;根元素 [

DTD 约束

]>

外部DTD

nbsp;根元素 SYSTEM  “外部DTD 的路径”>

公用DTD

nbsp;根元素 PUBLIC “DTD标识名” “公用DTDURI”>

 

DTD约束编写

定义元素(标记或是标记)

元素名  元素类型>

元素类型

(#PCDATA) :该类型包含任何字符数据,不能含有子元素

EMPTY: 该类型不能含有子元素或是文本,可以有属性

ANY :  该元素包含所以内容(适用于根元素)

(子元素:定义子元素只能出现一次

(子元素1,子元素2, ...) : 元素按规定的 名称及 顺序出现

(子元素+) : 当前元素出现 1+ 

(子元素*) : 当前元素出现 0+ 

(子元素?: 当前元素查询 或 

(子元素1 | 子元素2 ) : 互斥元素 ,只能选一

定义属性

基本语法:

元素名称 属性名称 属性类型 默认值 >

属性类型

CDATA      :字符或是数字(文本类型)

(en1|en2|en....) :枚举类型

ID : 属性唯一

IDREF :引用已定义的ID属性

#REQUIRED      :必填 (默认值)

#IMPLIED :可选

#FIXED :固定值

值 :直接使用默认值

定义实体

引用实体

基本语法:

实体名称  实体的值”>

 

引用语法: [xml中使用]

&实体名;

 

 

参数实体 [参数实体必须在外部DTD中定义,在外部dtd中使用]

基本语法:

实体名称 实体的值”>

引用语法:

%实体名;

PHP解析 XML 数据

PHP DOM 模型解析 XNL

PHP DOM  

DOMDocument  :  文档类

DOMNodeList   :  节点列表类

DOMNode    :   节点类

DOMElement    :  节点类

DOMDocument类:

基本语法:

DOMDocument::__construct( string $version  , string $encoding ){}

load 方法的使用

domdocument_obj->load ( ‘xml_filename.xml’ ) ;

item方法的使用:

domdocument_obj -> item(int index );

案例:PHP DOM查询操作

1】开辟内存空间形成

$dom = new DOMDocument(‘1.0’,’utf-8’);

2】载入xml文件到内存,形成dom

$dom->load( ‘test.xml’ );

3】获取同级兄弟节点,形成串

$names = $dom->getElementsByTagName(‘元素名字’);

4】获取节点名称为王大锤的name节点信息,所谓的点

$name = $names -> nodeValue;

以上代码简化:

$dom->getElementsByTageName(‘name’)->item(0)->nodeValue;

PHP DOM 属性操作

#判断某个节点是否具有指定的属性

bool DOMElement::hasAttribute(string $name);

#判断某个节点是否有指定的属性

bool DOMNode:: hasAttributes(void);

#获取某个节点的指定属性的值

string  DOMElement::getAttribute(string $name);

PHP DOM 的增删改查操作

PHP DOM 增操作:

创建新节点的方法:

DOMDocument :: createElement(string name [ ] );

 

追加新节点:

DOMDocument :: appendChild( DOMNode $newnode);

保存操作:

DOMDocument :: saveXML( filename);

PHP DOM 删操作:

移除节点操作:

DOMNode :: removeChild( DOMNode $nodeName ) ;

 

PHP DOM 改操作:

更新节点操作:

/**

*@param    string   $newNode    更新的节点

*   @param    string   $oldNode    旧的节点

*/

DOMNode :: replaceChild( DOMNode $newNode  , DOMNode $oldNode ) ;

PHP DOM  属性操作:

为节点添加属性:

/**

*@param   string    要添加属性的名字

*   @param   string    属性的值

*/

setAttribute(string $name  , string $value );

 

更新节点属性:

/**

*@param   string    要更新的属性的名字

*   @param   string    属性的值

*/

setAttribute ( string $name , string $value ) ;

 

移除指定节点的属性:

/**

*@param   string    要删除的属性名字

*/

removerAttribute( string $name );

 

 

simpleXML 解析XML

读取xml数据

基本语法:

/*

* @param    string     $filename    要加载的xml 文件名

*/

simpleXMLElement simplexml_load_file(string $filename) ;

 

 

/**

*@param   string   $str     已经定义好的xml字符内容

*/

simpleXMLElement simplexml_load_string(string  $str ) ;

 

查询xml数据

通过children()方法获取xml数据

 

通过foreach() 方法获取

 

通过 $xml->result[0]->nodeName 直接获取

xml 元素的添加

/**

* @param  string $name    有添加的元素的名字

*  @param  string  $value  设置值

*/

SimplexmlElement::addChild(string $name [,string $vaule]);

 

#添加完成后,要进行保存

/**

* @param   string    $filename 保存的xml文件名

*/

simpleXMLElement :: asXML(string $filenmae );

xml 属性的查询

/**

* @param  string    attr_name   一添加的属性的名字

*/

SimpleXMLElement :: attributes()->attr_name;

xml 属性的添加

/**

* @param string   $name   要添加的属性名

* @param string   $value  属性值

*/

smpleXMLElement::addtribute( string $name , [string $value [,string $namespace ]]

Xpath 查询xml数据

绝对路径

相对路径  //

星号 查询指令

中括号表达式

@属性

以上就介绍了xml 知识点梳理 -- 整理自广州传智王老师,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!