• 技术文章 >后端开发 >php教程

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

    2016-08-08 09:26:40原创510
    xml知识小结

    xml的结构

    文档声明:

    元素:(标签 标记)

    元素属性

    一个元素可以有多个属性

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

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

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

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

    处理指令

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

    xml指令

    xml-stylesheet指令

    例:

    注释:

    注释可以在浏览器中显示

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

    CDATA区段

    语法:

    内容

    ]]>

    xml DTD 文档约束

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

    DTD 约束文档分类

    内部 DTD

    根元素 [

    DTD 约束

    ]>

    外部DTD

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

    公用DTD

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

    DTD约束编写

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

    元素名 元素类型>

    元素类型

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

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

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

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

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

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

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

    (子元素?) : 当前元素查询 0 1

    (子元素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教程有兴趣的朋友有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp string xml param Name
    上一篇:thinkphp 的事务回滚处理 和 原始PHP的事务回滚实例 下一篇:nginx禁止访问某些后缀的文件
    PHP编程就业班

    相关文章推荐

    • PHP中的日期处理方法集锦_PHP教程• 在PHP中使用灵巧的体系结构_PHP教程• 抓取YAHOO股票报价的类_php技巧• Yii中创建自己的Widget实例_PHP• php短址转换实现方法_PHP

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网