XML操作

XML主要是做数据存储和WEB服务的,所以我们难免要操作它,这里只介绍PHP的simpleXML方式。

我们要操作的XML:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE books[
    <!ELEMENT books (book*)>
    <!ELEMENT book (name,author)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT author (#PCDATA)>
    <!ATTLIST book id ID #REQUIRED
                    category CDATA #REQUIRED>
    <!ATTLIST name lang (en|zh) 'zh'>
]>
<books>
    <book id='a3' category='后台技术'>
        <name lang='en'>Learn PHP</name>
        <author>Alex</author>
    </book>

    <book id='a4' category='前台技术'>
        <name lang='en'>Learn HTML</name>
        <author>Alex</author>
    </book>  

    <book id='a5' category='前台技术'>
        <name lang='en'>Learn CSS</name>
        <author>Alex</author>
    </book>
</books>

SimpleXMLElement

我们要操作XML需要得到一个SimpleXMLElement对象,方法有两种:

$simple_element = simplexml_load_file('test.xml');
$simple_element = new SimpleXMLElement('test.xml');

添加

$simple_element = simplexml_load_file('test.xml');
// 添加节点
$new_book = $simple_element->addChild('book');
$new_name = $new_book->addChild('name','learn_JAVAScript');
$new_book->addChild('author','Alex');
// 添加属性
$new_book->addAttribute('id','a6');
$new_book->addAttribute('category','前端技术');
// 保存
$simple_element->saveXML('test.xml');

查询

$simple_element = simplexml_load_file('test.xml');
// 编写HTML
$table = '<table width="600" border="1">';
$table .= '<tr><th>title</th><th>author</th></tr>';
foreach ($simple_element->book as $book) {
    $table .= "<tr>";
    $table .= "<td>{$book->name}</td>";
    $table .= "<td>{$book->author}</td>";
    $table .= '</tr>';
}

echo $table;

修改

$simple_element = simplexml_load_file('test.xml');
$books = $simple_element->book;
$books[1]->name = 'PHP经典实例';
$simple_element->saveXML('test.xml');
$simple_element = simplexml_load_file('test.xml');
// 获取到所有的book
$books = $simple_element->book;
// 获取book1的所有属性
$attributes = $books[1]->attributes();
// 修改属性
$attributes['category'] = '工具';
$simple_element->saveXML('test.xml');

删除

$simple_element = simplexml_load_file('test.xml');
// 获取到所有的book
$books = $simple_element->book;
// 删除用unset即可
unset($books[0]);
$simple_element->saveXML('test.xml');

我的PHP之旅--XML操作的更多相关文章

  1. LINQ系列:LINQ to XML操作

    LINQ to XML操作XML文件的方法,如创建XML文件.添加新的元素到XML文件中.修改XML文件中的元素.删除XML文件中的元素等. 1. 创建XML文件 string xmlFilePath ...

  2. T-Sql(五)xml操作

    t-sql中的xml操作在我们平时做项目的过程中用的很少,因为我们处理的数据量很少,除非一些用到xml的地方,t-sql中xml操作一般用在数据量很大,性能优化的地方,当然我在平时做项目的时候也是没用 ...

  3. XML格式示例 与 XML操作(读取)类封装

    header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...

  4. 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】

    一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...

  5. 简单的XML操作类

    /// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...

  6. Entity Framework 实体框架的形成之旅--界面操作的几个典型的处理(8)

    在上篇随笔<Entity Framework 实体框架的形成之旅--数据传输模型DTO和实体模型Entity的分离与联合>里面,介绍了在Entity Framework 实体框架里面引入了 ...

  7. .net学习笔记---xml操作及读写

    一.XML文件操作中与.Net中对应的类 微软的.NET框架在System.xml命名空间提供了一系列的类用于Dom的实现. 以下给出XML文档的组成部分对应.NET中的类: XML文档组成部分 对应 ...

  8. C#常用操作类库三(XML操作类)

    /// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...

  9. php xml 操作。

    参考 文章:http://www.cnblogs.com/zcy_soft/archive/2011/01/26/1945482.html DOMDocument相关的内容. 属性: Attribut ...

随机推荐

  1. 我最喜欢的visual studio 2013的新特性

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:我最喜欢的visual studio 2013的新特性.

  2. A Practical Guide to Distributed Scrum - 分布式Scrum的实用指南 - 读书笔记

    最近读了这本IBM出的<A Practical Guide to Distributed Scrum>(分布式Scrum的实用指南),书中的章节结构比较清楚,是针对Scrum项目进行,一个 ...

  3. MySQL 5.6 SQL 优化及 5.6手册

    http://blog.chinaunix.net/uid-259788-id-4146363.html http://www.cnblogs.com/Amaranthus/p/4028687.htm ...

  4. careercup-栈与队列 3.6

    3.6 编写程序,按升序对栈进行排序(即最大元素位于栈顶).最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中(如数组).该栈支持如下操作:push.pop.peek和isEmpt ...

  5. Java基础知识强化之IO流笔记32:转换流之OutputStreamWriter的使用

    1. OutputStreamWriter的使用 OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流 OutputStreamWriter ...

  6. Div+css中ul ol li dl dt dd使用

    ol 有序列表.<ol><li>……</li><li>……</li><li>……</li></ol>表现 ...

  7. Android WebView的loadData方法注意事项

    loadData()中的html data中不能包含'#', '%', '\', '?'四中特殊字符,出现这种字符就会出现解析错误,显示找不到网页还有部分html代码.需要如何处理呢?我们需要用Url ...

  8. linux tar 压缩解压缩

    解压 .tar.bz tar zxvf file.tar.gz .tar.gz2 tar jxvf file.tar.bz2 .bz gzip -d file.bz .gz2 bzip2 -d fil ...

  9. RHEL7单独安装图形X11

    RHEL7 默认是最小化安装(Minimal Install),没有图形界面,我们应该选择Server with GUI.若已错过此步骤,我们采用以下方式补充安装GUI界面. # yum group ...

  10. 传送门(portal)

    Linux: #RHEL/CentOS/fedora系列为主 Basis: Commands: Services: SpamAssassin: Tomcat: Hadoop: Hive: Pig: Z ...