找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1153|回复: 0
打印 上一主题 下一主题

DOM基础及php读取xml内容操作的方法

[复制链接]

2647

主题

2647

帖子

7881

积分

论坛元老

Rank: 8Rank: 8

积分
7881
跳转到指定楼层
楼主
发表于 2018-2-14 05:50:06 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

            本文实例讲述了DOM基础及php读取xml内容操作的方法。分享给大家供大家参考。具体分析如下:
DOM(Document Object Model):文档对象模型。核心思想是:把 xml文件看作是一个对象模型,然后通过对象的方式来操作 xml 文件。
php对xml文档进行增删改查(curd)操作,具体分析如下:
xml文档:class.xml
[U]复制代码[/U] 代码如下:

  小乔
  女
  20


  周瑜
  男
  25

class.xml 对应的 DOM 树结构图

php文件(对xml文档操作)
查询操作案例:
[U]复制代码[/U] 代码如下:load("class.xml");
//3、目标:获取第一个学生的名字
//3.1 第一步,读取所有的学生
$students = $xmldoc->getElementsByTagName("student");//方法getElementsByTagName:根据所给的节点名字(这里是student)查找 相应的节点,返回 DOMNodeList类型的对象,相当于取出了所有的学生。可以用var_dump($students)查看,并根据返回值查找手册,看其下面的属性与方法。
echo "共有 ".$students->length."个学生
";
//3.2 读取第一个学生
$stu1 = $students->item(0);//读取到第一个学生。返回值为DOMElement对象。直接 echo $stu1->nodeValue;则把name,sex,age都输出。
//3.3 取出第一个学生的名字
$stu1_name = $stu1->getElementsByTagName("name");
//3.4 读取到名字
echo $stu1_name->item(0)->nodeValue;
?>
注意点:
(1)编码问题;
(2)这里只是基础演示,比较麻烦,后面用到循环和函数来操作;
(3)用var_dump(),查看变量的返回值是什么,再根据返回值到手册中查找该返回值下的属性与方法。
(4)整个顺序下来,getElementByTagName()并不需要一层一层的读,事实上可以直接读取到节点name的,而不需要先读取student(当然,如果同一个student下,有多个name,就会出问题了,这里就需要学习新的知识点xpath)。
所以上面这代码可以简单改为:
[U]复制代码[/U] 代码如下:load("class.xml");
//3、目标:获取第一个学生的名字
$stu = $xmldoc->getElementsByTagName("name");//直接找到节点name
$stu1 = $stu->item(0);// item(1)时,可以取到周瑜
echo $stu1->nodeValue;
?>
希望本文所述对大家的php操作XML程序设计有所帮助。
            
            
您可能感兴趣的文章:
  • 使用PHP DOM-XML创建和解析XML文件
  • PHP XML操作类DOMDocument
  • 用PHP实现读取和编写XML DOM代码
  • PHP5中使用DOM控制XML实现代码
  • php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
  • 用PHP读取和编写XML DOM的实现代码
  • php中使用DOM类读取XML文件的实现代码
  • php中DOMElement操作xml文档实例演示
  • php基于dom实现读取图书xml格式数据的方法
  • PHP基于DOM创建xml文档的方法示例
  • PHP实现使用DOM将XML数据存入数组的方法示例
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端