php入门教程xml学习笔记

明确目标: 1、理解xml的结构;2、如何动态建立xml文件;3、如何读取和修改xml文件

  一、 xml的结构是树形结构:

这个好理解。简单写一个:

 1 <pictures> 2   <picture> 3      <id>1</id> 4      <name>pic 1</name> 5   </picture> 6   <picture> 7      <id>2</id> 8      <name>pic 2</name> 9   </picture>10   <picture>11      <id>3</id>12      <name>pic 3</name>13   </picture>14  </pictures>
 

 

  二、我使用的php教程创建:

    1. 定义一个dom对象: $dom = new domdocument('1.0');

    2. 添加子元素:$dom->appendchild($dom->createelement("pictures"))

     内存中的原型是:<pictures></pictures>

     继续往里边加子元素:*->appendchild($dom->createelement("picture"));

     继续加: **->appendchild($dom->createelement("id"));

     不加子元素了,加节点: ***->appendchild($dom->createnode("1"))

     上面的*代表上上一行的代码;这样一来就可以写成一行:

       $dom->appendchild($dom->createelement("pictures"))->appendchild($dom->createelement("picture"))

       ->appendchild($dom->createelement("id"))->appendchild($dom->createnode("1"));

     现在内存中应该是这样的:<pictures><picture><id>1</id></picture></pictures>

     显然里要求还远,很容易看懵的。

      因此一般这么写: $pictures = $dom->appendchild($dom->createelement("pictures"));

               $picture = $pictures->appendchild($dom->createelement("picture"));

               $id = $picture->appendchild($dom->createelement("id"));

                      $id->appendchild($dom->createnode("1"));

      下面还可以接着创建name节点:

               $name = $picture->appendchild($dom->createelement("name"));

                   $name->appendchild($dom->createnode("pic 1"));

      接下来还要接着创建picture节点:

              $picture = $pictures->appendchild($dom->createelement("picture"));

      其实这些麻烦的事可以写个for循环来实现。

      生成xml文件:

              $dom->formatoutput = true;//设置格式化输出

              $dom->save("erhsh.xml");//保存xml文件

  三、读取xml文件。

      1、还是定义一个dom对象;$dom->new domdocument();

      2、加载xml文件:$dom->load("erhsh.xml");

      3、按照节点的名字取得节点集合:$dom->getelementbytagname("pictures");

      这种方法有点麻烦,参考文件:http://wenku.baidu.com/view/8f0c3c5177232f60ddcca163.html

    不过有一种我喜欢的方法:simplexml_load_file("erhsh.xml");

     此方法可以把xml文件的内容转换成对象的形式,使用"->"结和"[]"很容易去的xml的内容;

    但是在开发中还是遇到了一点问题:

    当执行:print_r($xml->pictures);时输出的是一个 simplexmlelement 对象,([picture] => array([0]=>array(...)[1]=>array(...)));

    再执行:print_r($xml->pictures->picture);输出的是n个分开的对象。

    执行:print_r($xml->pictures->picture[0]->id);输出的还是一个对象。这就很不理解,应该是一个字符串。 最后网上说是“迭代对象”,

    应该使用echo输出,print_r(), var_dump()输出不准确

时间: 2024-09-08 07:10:31

php入门教程xml学习笔记的相关文章

andengine入门教程之学习笔记

例子中主程序.launcher.ExampleLauncher主要继承自ExpandableListActivity的列表, 这里主要定义了另个枚举public enum ExampleGroup和enum Example ,平时因为像他们这样使用比较少,值得学习.  代码如下 复制代码 enum Example { // =========================================================== // Elements // ============

Grunt入门教程之学习笔记

我现在在几个小项目中一直在使用Node.js.在Node系统中有一些很强大的工具.我最喜欢的一个例子就是Grunt. Grunt是一种工具,允许您定义任务,然后通过命令运行他们,在命令行中运行:  代码如下 复制代码 grunt watch 这将启动一个watch任务,用来监控文件,我已经指定和运行指定的任务,只要这些文件变化了,就能监控到.在我的例子中,我已经在Grunt设置了只要当.js文件改变了就能检测JavaScript语法和压缩JavaScript和当.scss文件改变就能将Sass文

mysql数据库入门教程之学习笔记

mysql复习  一:复习前的准备  1:确认你已安装wamp  2:确认你已安装ecshop,并且ecshop的数据库名为shop     二   基础知识:  1.数据库的连接  mysql -u -p -h  -u 用户名  -p 密码  -h host主机  2:库级知识  2.1 显示数据库: show databases;  2.2 选择数据库: use dbname;  2.3 创建数据库: create database dbname charset utf8;  2.3 删除数

MySQL入门教程之学习笔记

慢速SQL:执行时间超过给定时间范围的查询就称为慢速查询. 在MySQL中如何记录慢速SQL? 答:可以在my.cnf中设置如下信息:   1 [mysqld]  2 ; enable the slow query log, default 10 seconds  3 log-slow-queries  4 ; log queries taking longer than 5 seconds  5 long_query_time = 5  6 ; log queries that don't u

javascript入门教程之学习笔记

呵呵,,好久没写文章了,,近来接触js比较多久顺便写个与js相关的文吧. 嗯,今天就谢谢与变量相关的东东吧,变量这东西只要你是敲代码的天天都得接触呢. 有人说变量有啥好写的?我不会告诉你Javascript里的变量很奇怪呢,没好好学一遍真的会被搞晕掉的. 好,先拿一篇已存的文,个人感觉写的还可以. 1.变量类型:基本类型和引用类型     在js 中,基本类型:Number,Boolen,null,String,Underfined 存放在栈内存中,数据长度是固定的.     而引用类型,Obj

XML入门教程:XML DHTML 行为

dhtml|xml|教程|入门教程 Internet Explorer 5引入了DHTML行为.行为(Behaviors)是一种借助CSS的便利性向HTML元素添加DHTML功能性的方法. 行为 - 什么是行为? IE 5引入了DHTML行为(DHTML behaviors).行为(Behaviors)是一种借助CSS的便利性向HTML元素添加DHTML功能性的方法. 行为如何工作呢?通过使用XML,我们可以把行为链接到网页中的任何元素,并对元素进行操作. DHTML行为不使用<script>

XML入门教程:XML CDATA

xml|教程|入门教程 所有XML文档中的文本均会被解析器解析. 只有CDATA区段(CDATA section)中的文本会被解析器忽略. Parsed Data XML解析器通常会解析XML文档中所有的文本. 当某个XML元素被解析时,其标签之间的文本也会被解析: <message>此文本也会被解析</message> 解析器之所以这么做是因为XML元素可包含其他的元素,就像这个例子中,其中的<name>元素包含着另外的两个元素(first 和 last): <

XML入门教程:XML 解析器

xml|教程|入门教程 如需读取.更新.创建或者操作某个XML文档,则需要XML解析器. 实例 解析XML文件 - 跨浏览器的实例 本例是一个跨浏览器的实例,把某个XML文档("note.xml")载入XML解析器. <html><body><script type="text/vbscript">set xmlDoc=CreateObject("Microsoft.XMLDOM")xmlDoc.async=&

XML入门教程:XML 浏览器支持

xml|教程|浏览器|入门教程 几乎所有的主流浏览器均支持XML和XSLT. Mozilla Firefox 从1.0.2版本开始,Firefox就已开始支持XML和XSLT(包括CSS). Mozilla Mozilla含有用于XML解析的Expat,并支持显示XML + CSS.Mozilla同时拥有对Namespaces的某些支持. Mozilla同样可做到对XSLT的执行(XSLT implementation). Netscape 自从版本8开始,Netscape开始使用Mozilla