首页 后端开发 php教程 php操作xml_PHP教程

php操作xml_PHP教程

Jul 13, 2016 am 10:25 AM
php xml

要操作的数据

复制代码 代码如下:



   
        David Flanagan
   

   
        Luke Welling
        Laura Thomson
   

   
        David Courley
        Brian Totty
   


XML几个基本概念
1、 节点:节点也就是很多程序语言中处理XML时的Node,节点是一个比较宽泛的概念,在XML中元素,属性,名字空间,注释,文本内容,处理指令,还有整个文档都属于节点,也就是说XML文档中每个独立的一小部分都是节点,是,也是,name=”XXXX”也是,标签是,甚至作者的名字David Flanagan都是一个文本节点。
2、元素:很多程序语言都有对XML处理,节点是一个很宽泛的概念,因为要统一API,对节点不会有过多方法,而元素也就是Element是节点的一个子集,简单讲就是这样的标签才算,一般会有很多针对元素的操作方法。
3、属性:这个比较好理解,在里面的类似XX=”OO”等东西都是属性节点
4、转义字符:和HTML等类似,xml也有语言占用的符号,想使用的这些特殊字符的时候需要转义
php操作xml_PHP教程
DOMDocument对象
我使用的是DOMDocument对象来操作xml,感觉用起来比simpleXml科学一些,当然第一天使用php,纯属个人感觉。DOMDocument有几个常用的属性和方法。
php操作xml_PHP教程

加载xml

复制代码 代码如下:

$path=$_SERVER["DOCUMENT_ROOT"].'/books.xml';
    $books=new DOMDocument();
    $books->load($path);

读取/遍历节点与属性

复制代码 代码如下:

$bookElements=$books->getElementsByTagName('book');

    foreach($bookElements as $book){
        foreach ($book->attributes as $attr) {
            echo strtoupper($attr->nodeName).' —— '.$attr->nodeValue.'
';
        }
        echo "AUTHOR: ";
        foreach ($book->getElementsByTagName('author') as $author) {
            echo $author->nodeValue.' ';
        }
        echo '

';
    }


php操作xml_PHP教程

当然对于很多属性,只想读一个,可以通过item(index)方法按索引读取

复制代码 代码如下:

echo $book->attributes->item(1)->nodeValue;

还可以通过强大的xpath查询
复制代码 代码如下:

还可以通过强大的xpath查询

修改属性/节点

复制代码 代码如下:

foreach($bookElements as $book){
        foreach ($book->attributes as $attr) {
            #$book->setAttribute($attr->nodeName,strtoupper($attr->nodeValue));
            $attr->nodeValue=strtoupper($attr->nodeValue);
        }
        echo "AUTHOR: ";
        foreach ($book->getElementsByTagName('author') as $author) {
            $author->nodeValue=strtoupper($author->nodeValue);
        }

    }
    $books->save($path);


php操作xml_PHP教程

对属性修改可以直接访问其nodeValue改动,也可以使用setAttribute方法,改动完了别忘了使用save保存。

复制代码 代码如下:

$book->setAttribute($attr->nodeName,strtoupper($attr->nodeValue));
$attr->nodeValue=strtoupper($attr->nodeValue);

添加元素/属性

复制代码 代码如下:

$newBook=$books->createElement('book'); #创建新元素
    $newBook->setAttribute('name','PHP Objects, Patterns, and Practice');#创建新属性,方法一

    $publisher=$books->createAttribute('publisher');#创建新属性,方法二
    $publisher->nodeValue='Apress L.P';
    $newBook->appendChild($publisher); #把属性添加到元素上

    $author=$books->createElement('author');#创建子元素
    $author->nodeValue='Matt Zandstra';
    $newBook->appendChild($author);#把子元素添加到父元素上

    $books->documentElement->appendChild($newBook);#添加整个节点
    $books->save($path);

删除属性/节点

复制代码 代码如下:

$first=$bookElements->item(0);
    $first->removeAttribute('publisher');

    $second=$bookElements->item(1);
    $second->parentNode->removeChild($second);

    $books->save($path);


php操作xml_PHP教程


初学php文章肯定有很多谬误,希望大家批评指正,共同进步。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/824929.htmlTechArticle要操作的数据 复制代码 代码如下: ?xml version="1.0"? books book name="JavaScript: The Defiitive Guide" publisher="O'Reilly Media, Inc." authorDavid Flanagan/author /bo...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
<🎜>掩盖:探险33-如何获得完美的色度催化剂
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1677
14
CakePHP 教程
1430
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
如果session_start()被多次调用会发生什么? 如果session_start()被多次调用会发生什么? Apr 25, 2025 am 12:06 AM

多次调用session_start()会导致警告信息和可能的数据覆盖。1)PHP会发出警告,提示session已启动。2)可能导致session数据意外覆盖。3)使用session_status()检查session状态,避免重复调用。

XML在RSS中的优势:技术深度潜水 XML在RSS中的优势:技术深度潜水 Apr 23, 2025 am 12:02 AM

XML在RSS中具有结构化数据、可扩展性、跨平台兼容性和解析验证的优势。1)结构化数据确保内容的一致性和可靠性;2)可扩展性允许添加自定义标签以适应内容需求;3)跨平台兼容性使其在不同设备上无缝工作;4)解析和验证工具确保Feed的质量和完整性。

session_start()函数的意义是什么? session_start()函数的意义是什么? May 03, 2025 am 12:18 AM

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

作曲家:通过AI的帮助开发PHP 作曲家:通过AI的帮助开发PHP Apr 29, 2025 am 12:27 AM

AI可以帮助优化Composer的使用,具体方法包括:1.依赖管理优化:AI分析依赖关系,建议最佳版本组合,减少冲突。2.自动化代码生成:AI生成符合最佳实践的composer.json文件。3.代码质量提升:AI检测潜在问题,提供优化建议,提高代码质量。这些方法通过机器学习和自然语言处理技术实现,帮助开发者提高效率和代码质量。

XML中的RSS:揭示内容联合的核心 XML中的RSS:揭示内容联合的核心 Apr 22, 2025 am 12:08 AM

RSS在XML中的实现方式是通过结构化的XML格式来组织内容。1)RSS使用XML作为数据交换格式,包含频道信息和项目列表等元素。2)生成RSS文件需按规范组织内容,发布到服务器供订阅。3)RSS文件可通过阅读器或插件订阅,实现内容自动更新。

H5:HTML5的关键改进 H5:HTML5的关键改进 Apr 28, 2025 am 12:26 AM

HTML5带来了五个关键改进:1.语义化标签提升了代码清晰度和SEO效果;2.多媒体支持简化了视频和音频嵌入;3.表单增强简化了验证;4.离线与本地存储提高了用户体验;5.画布与图形功能增强了网页的可视化效果。

如何使用MySQL的函数进行数据处理和计算 如何使用MySQL的函数进行数据处理和计算 Apr 29, 2025 pm 04:21 PM

MySQL函数可用于数据处理和计算。1.基本用法包括字符串处理、日期计算和数学运算。2.高级用法涉及结合多个函数实现复杂操作。3.性能优化需避免在WHERE子句中使用函数,并使用GROUPBY和临时表。

XML中的RSS:解码标签,属性和结构 XML中的RSS:解码标签,属性和结构 Apr 24, 2025 am 12:09 AM

RSS是一种基于XML的格式,用于发布和订阅内容。RSS文件的XML结构包括根元素、元素和多个元素,每个代表一个内容条目。通过XML解析器读取和解析RSS文件,用户可以订阅并获取最新内容。

See all articles