0

0

XML的解析与创建范例

little bottle

little bottle

发布时间:2019-04-23 15:23:01

|

6150人浏览过

|

来源于博客园

转载

xml用来传输和存储数据,如何解析获取到的xml文本呢?本篇文章讲述的是对xml文本的解析与创建,具有一定参考价值,感兴趣的朋友可以来了解一下。

一.解析XML

创建demo.xml文件:

 
    
      php 
      php入门到放弃 
    
    
      java 
      java入门到放弃 
    
    
      C 
      C入门到放弃 
    

使用PHP解析demo.xml中的内容,以获取到php这个文本节点为例:

load('demo.xml'); //载入要解析的xml文档
    $titleList = $dom->getElementsByTagName('title'); ////DOMNodeList Object ( [length] => 3 ) 获取节点列表对象
    $title = $titleList->item(0); //DOMElement Object 获取子节点对象
    $title = $title->childNodes; //DOMNodeList Object ( [length] => 1 )获取子节点列表对象
    $title = $title->item(0); //DOMText Object 获取到文本对象
    $text = $title->wholeText; //获取到文本内容
    echo $text; //php
    echo '
'; //也可以直接写成连贯操作: $text = $dom->getElementsByTagName('title')->item(0)->childNodes->item(0)->wholeText; echo $text; //php echo '
'; //第二种方法: $text = $dom->getElementsByTagName('title')->item(0)->nodeValue; //获取到文本内容 echo $text; //php

除了解析之外,还可以对xml节点进行删除和替换操作:

    $dom = new DOMDocument('1.0','UTF-8');
    $dom->load('demo.xml'); //载入要解析的xml文档
    /**
     *xml删除节点
     * */
    $php = $dom->getElementsByTagName('book')->item(0); //获取文本节点
    $php->parentNode->removeChild($php); //获取文本节点的父节点,然后站在父节点的立场删除子文本节点
    /**
     * xml替换节点
     * */
    $java = $dom->getElementsByTagName('title')->item(0); //获取要替换的文本节点
    $newnode = $dom->createTextNode('python'); //创建新的文本节点
    $java->replaceChild($newnode,$java->firstChild); //用新节点替换旧文本节点内容
    header("content-type:text/xml");
    echo $dom->saveXML(); //直接输出xml文本     

二.创建XML

使用PHP创建一个如下的XML文件:

PHP Apache和MySQL 网页开发初步
PHP Apache和MySQL 网页开发初步

本书全面介绍PHP脚本语言和MySOL数据库这两种目前最流行的开源软件,主要包括PHP和MySQL基本概念、PHP扩展与应用库、日期和时间功能、PHP数据对象扩展、PHP的mysqli扩展、MySQL 5的存储例程、解发器和视图等。本书帮助读者学习PHP编程语言和MySQL数据库服务器的最佳实践,了解如何创建数据库驱动的动态Web应用程序。

下载
 
 
     php
     
 

PHP代码:

createTextNode('php'); //创建文本节点
    $title = $dom->createElement('title'); //创建普通节点
    $title->appendChild($text); //将文本节点作为子节点添加到普通节点内
    $cdata = $dom->createCDATASection('PHP是世界上最好的编程语言.emmm...'); //创建CDATA节点
    $author = $dom->createElement('author'); //创建普通节点
    $author->appendChild($cdata); //将CDATA节点作为子节点添加到普通节点内
    $book = $dom->createElement('book'); //创建普通节点
    //将上面创建的两个普通节点作为子节点添加到普通节点内
    $book->appendChild($title);
    $book->appendChild($author);
    $book_id = $dom->createAttribute('book_id'); //创建属性名
    $book_id->value = '1'; //创建属性值
    $book->appendChild($book_id); //将属性加到普通节点内
    $bookstore = $dom->createElement('bookstore'); //创建普通节点
    $bookstore->appendChild($book); //将普通节点作为子节点添加到普通节点内
    $dom->appendChild($bookstore); //将普通节点添加到文档内
    // header("content-type:text/xml");
    // echo $dom->saveXML(); //直接输出xml文本
    echo $dom->save('demo.xml'); //生成xml文件

在浏览器输出如下图:

相关教程:XML视频教程

 

相关专题

更多
微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

2

2026.01.18

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

74

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

133

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

54

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

19

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

106

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

44

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

11

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
XML教程
XML教程

共142课时 | 5.7万人学习

XQuery 教程
XQuery 教程

共12课时 | 3.6万人学习

XLink  教程
XLink 教程

共7课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号