<?xml version=’1.0’ encoding=’utf-8’?>
一个元素可以有多个属性
属性值一定要用引号(单引号或双引号)引起来
属性名称的命名规范与元素的命名规范相同
元素中的属性是不允许重复的
标签属性所代表的信息也可以被改成用子元素的形式来描述
必须以“<?”作为开头,以“?>”作为结尾
xml指令
xml-stylesheet指令
例: <?xml-stylesheet type="text/css“ href=“style.css"?>
<!--这是注释--> 注释可以在浏览器中显示
XML声明之前不能有注释,注释不能嵌套
语法:
<![CDATA[
内容
]]>
约束文档定义了xml允许出现的元素名称 、属性 、 以及元素出现顺序等
<!DOCTYPE 根元素 [
DTD 约束
]>
<!DOCTYPE 根元素 SYSTEM “外部DTD 的路径”>
<!DOCTYPE 根元素 PUBLIC “DTD标识名” “公用DTD的URI”>
<!ELEMENT 元素名 元素类型>
元素类型
(#PCDATA) :该类型包含任何字符数据,不能含有子元素
EMPTY: 该类型不能含有子元素或是文本,可以有属性
ANY : 该元素包含所以内容(适用于根元素)
(子元素) :定义子元素只能出现一次
(子元素1,子元素2, ...) : 元素按规定的 名称及 顺序出现
(子元素+) : 当前元素出现 1+ 次
(子元素*) : 当前元素出现 0+ 次
(子元素?) : 当前元素查询 0 或 1 次
(子元素1 | 子元素2 ) : 互斥元素 ,只能选一
基本语法:
<!ATTLIST 元素名称 属性名称 属性类型 默认值 >
属性类型
CDATA :字符或是数字(文本类型)
(en1|en2|en....) :枚举类型
ID : 属性唯一
IDREF :引用已定义的ID属性
#REQUIRED :必填 (默认值)
#IMPLIED :可选
#FIXED :固定值
值 :直接使用默认值
引用实体
基本语法:
<!ENTITY 实体名称 “实体的值”>
引用语法: [在xml中使用]
&实体名;
参数实体 [参数实体必须在外部DTD中定义,在外部dtd中使用]
基本语法:
<!ENTITY % 实体名称 “实体的值”>
引用语法:
%实体名;
DOMDocument : 文档类
DOMNodeList : 节点列表类
DOMNode : 节点类
DOMElement : 节点类
基本语法:
DOMDocument::__construct( string $version , string $encoding ){}
load 方法的使用
domdocument_obj->load ( ‘xml_filename.xml’ ) ;
item方法的使用:
domdocument_obj -> item(int index );
【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;
#判断某个节点是否具有指定的属性
bool DOMElement::hasAttribute(string $name);
#判断某个节点是否有指定的属性
bool DOMNode:: hasAttributes(void);
#获取某个节点的指定属性的值
string DOMElement::getAttribute(string $name);
创建新节点的方法:
DOMDocument :: createElement(string name [ ] );
追加新节点:
DOMDocument :: appendChild( DOMNode $newnode);
保存操作:
DOMDocument :: saveXML( filename);
移除节点操作:
DOMNode :: removeChild( DOMNode $nodeName ) ;
更新节点操作:
/**
*@param string $newNode 更新的节点
* @param string $oldNode 旧的节点
*/
DOMNode :: replaceChild( DOMNode $newNode , DOMNode $oldNode ) ;
为节点添加属性:
/**
*@param string 要添加属性的名字
* @param string 属性的值
*/
setAttribute(string $name , string $value );
更新节点属性:
/**
*@param string 要更新的属性的名字
* @param string 属性的值
*/
setAttribute ( string $name , string $value ) ;
移除指定节点的属性:
/**
*@param string 要删除的属性名字
*/
removerAttribute( string $name );
基本语法:
/*
* @param string $filename 要加载的xml 文件名
*/
simpleXMLElement simplexml_load_file(string $filename) ;
/**
*@param string $str 已经定义好的xml字符内容
*/
simpleXMLElement simplexml_load_string(string $str ) ;
通过children()方法获取xml数据
通过foreach() 方法获取
通过 $xml->result[0]->nodeName 直接获取
/**
* @param string $name 有添加的元素的名字
* @param string $value 设置值
*/
SimplexmlElement::addChild(string $name [,string $vaule]);
#添加完成后,要进行保存
/**
* @param string $filename 保存的xml文件名
*/
simpleXMLElement :: asXML(string $filenmae );
/**
* @param string attr_name 一添加的属性的名字
*/
SimpleXMLElement :: attributes()->attr_name;
/**
* @param string $name 要添加的属性名
* @param string $value 属性值
*/
smpleXMLElement::addtribute( string $name , [string $value [,string $namespace ]]
原文地址:http://blog.csdn.net/u010657348/article/details/44875647