广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >使用php操作xml教程
  • 497
分享到

使用php操作xml教程

2024-04-02 19:04:59 497人浏览 独家记忆
摘要

PHP操作xml 最近计划写个人的小网站,一系列原因选择了用php来写,最大的问题就是虽然php很流行,但我从来没有接触过php,看了一个多星期的基本语法后做些小练习热热身,但是期间

PHP操作xml

最近计划写个人的小网站,一系列原因选择了用php来写,最大的问题就是虽然php很流行,但我从来没有接触过php,看了一个多星期的基本语法后做些小练习热热身,但是期间是各种问题啊,主要是对php不熟悉,遇到一些总结一些吧。

数据


<?xml version="1.0"?>
<books>
    <book name="javascript: The Defiitive Guide" publisher="O'Reilly Media, Inc.">
        <author>David Flanagan</author>
    </book>
    <book name="PHP anf Mysql WEB Development" publisher="Perason Education">
        <author>Luke Welling</author>
        <author>Laura Thomson</author>
    </book>
    <book name="Http: The Defiitive Guide" publisher="O'Reilly Media, Inc.">
        <author>David Courley</author>
        <author>Brian Totty</author>
    </book>
</books>

XML几个基本概念

节点:节点也就是很多程序语言中处理XML时的node,节点是一个比较宽泛的概念,在XML中元素,属性,名字空间,注释,文本内容,处理指令,还有整个文档都属于节点,也就是说XML文档中每个独立的一小部分都是节点,是,也是,name=”XXXX”也是,标签是,甚至作者的名字David Flanagan都是一个文本节点。

元素:很多程序语言都有对XML处理,节点是一个很宽泛的概念,因为要统一api,对节点不会有过多方法,而元素也就是Element是节点的一个子集,简单讲就是这样的标签才算,一般会有很多针对元素的操作方法。

属性:这个比较好理解,在<>里面的类似XX=”OO”等东西都是属性节点

转义字符:和html等类似,xml也有语言占用的符号,想使用的这些特殊字符的时候需要转义

<

&lt;

>

&gt;

&

&amp;

&apos;

&quot;

DOMDocument对象

我使用的是DOMDocument对象来操作xml,感觉用起来比simpleXml科学一些,当然第一天使用php,纯属个人感觉。DOMDocument有几个常用的属性和方法。

属性 作用
attributes 节点属性集合
parentNode 节点父节点
documentElement 文档根节点
nodeName 节点的名字
nodeType 节点类型
nodeValue 节点值
Text 节点及其子节点转换为文字
方法 作用
appendChild 为节点添加子节点
createAttribute 创建属性节点
createElement 创建元素
getElementsByTagName 通过节点名获取节点集合
hasChildNodes 判断节点是否有子节点
insertBefore 在节点
Load 通过文档路径加载xml
loadXML 加载zml字符串
removeChild 删除子节点
removeAttribute 删除属性节点
save 保存文档

加载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.'<br/>';
        }
        echo "AUTHOR: ";
        foreach ($book->getElementsByTagName('author') as $author) {
            echo $author->nodeValue.' ';
        }
        echo '<br/><br/>';
    }

在这里插入图片描述

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


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

还可以通过强大的xpath查询


$xpath = new domxpath($books);
$bookElements=$xpath->query("/books/book");

修改属性/节点


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);

在这里插入图片描述

对属性修改可以直接访问其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操作xml内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用php操作xml教程

本文链接: https://www.lsjlt.com/news/130026.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用php操作xml教程
    php操作xml 最近计划写个人的小网站,一系列原因选择了用php来写,最大的问题就是虽然php很流行,但我从来没有接触过php,看了一个多星期的基本语法后做些小练习热热身,但是期间...
    99+
    2022-11-12
  • PHP操作XML的教程详解
    php操作XML <xml version="1.0" encoding="utf-8"> <article> <item> ...
    99+
    2022-11-13
  • C#实用教程操作xml文件
    操作XML文件是C#编程中非常常见的任务之一。下面是一个简单的C#实用教程,演示如何使用C#读取、编辑和保存XML文件。读取XML文...
    99+
    2023-09-15
    C#
  • PHP如何操作XML
    本篇内容介绍了“PHP如何操作XML”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php操作XML<xml version=...
    99+
    2023-06-30
  • 无涯教程-PHP - XML GET
    XML Get已用于从xml文件获取节点值。以下示例显示了如何从xml获取数据。 Note.xml 是xml文件,可以通过php文件访问。 Android India LearnFk $10 index.html 索引页有...
    99+
    2023-08-31
    php
  • Python操作XML教程:读取、写入、修改和保存XML文档
    目录 导入所需模块解析XML文档获取元素遍历XML文档写入新的元素修改元素的内容和属性删除元素保存修改后的XML文档示例演示python操作xml的常用方法 XML是一种...
    99+
    2023-09-01
    python xml
  • python使用dom操作xml
    1、xml的内容为del.xml,如下 <xml version="1.0" encoding="utf-8"> <catalog> <maxid>4</maxid> &...
    99+
    2023-01-31
    操作 python dom
  • PHP操作ElasticSearch7.8.1 详细教程
    版本PHP 操作 ElasticSearch 的索引,文档PHP版本: 7.1.9ElasticSearch版本:7.8.1ElasticSearch-PHP根据 PHP 版本选择对应的 ElasticSearch-PHP 版本PHP 安装...
    99+
    2022-06-16
    ElasticSearch php
  • PHP中的XML操作指南
    PHP中的XML操作指南XML(可扩展标记语言)是一种非常流行的数据交换格式,在Web开发中被广泛使用。在PHP中,可以轻松地读取、创建和修改XML文档。本文将为您介绍如何在PHP中使用XML。读取XML在PHP中,使用SimpleXML扩...
    99+
    2023-05-21
    PHP xml 操作指南 (操作指南可能不是一个专业编程术语 但可以理解为"操作指南"在该文章中充当
  • PHP 数组操作必备 Git 教程?
    作为一名 PHP 开发者,你一定很熟悉 PHP 数组的使用。数组在 PHP 中是一个非常重要的数据类型,可以用来存储一系列相关的数据。在开发过程中,我们经常需要对数组进行操作,比如添加、删除、修改、查找等。而 Git 则是一个非常流行的版...
    99+
    2023-06-24
    数组 git 教程
  • C#中XML操作类怎么使用
    在C#中,可以使用System.Xml命名空间中的类来操作XML。下面是一个简单的示例,演示了如何创建XML文档、添加元素、保存和读...
    99+
    2023-10-22
    C# XML
  • C#下使用XmlDocument操作XML详解
    目录一、XML DOM概述二、XML成员1、XMl节点:XmlNode1、属性:2、方法:2、XML文档:XMLDocument1、属性:2、方法:3、事件:3、XML元素:XmlE...
    99+
    2022-11-13
  • C#下怎么使用XmlDocument操作XML
    在C#中,可以使用XmlDocument类来操作XML文件。以下是一个简单的示例,演示如何使用XmlDocument来创建、修改和读...
    99+
    2023-08-16
    C# XmlDocument
  • Python操作XML文件的使用指南
    目录什么是 XMLPython XML 解析模块xml.etree.ElementTree 模块使用 parse() 函数使用 fromstring() 函数寻找感兴趣的元素修改 X...
    99+
    2022-11-11
  • java 如何使用org.w3c.dom操作XML文件
    本篇介绍在java中,如何使用org.w3c.dom中的相关内容来操作XML文件。包括: 如何在内存中构建XML文件并写入磁盘; 如何从磁盘读取XML文件到内存; ...
    99+
    2022-11-12
  • 操作MySQL的教程
    本文主要给大家介绍操作MySQL的教程,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下操作MySQL的教程吧。#导入与还原数据库mysqldump -...
    99+
    2022-10-18
  • Git 教程:如何在 PHP 中操作数组?
    在 PHP 中,数组是一种非常重要的数据结构。操作数组可以让我们更加高效地处理数据,减少代码的重复性。而 Git 作为一种分布式版本控制系统,也需要在操作数组时进行相应的处理。本文将介绍 Git 中如何操作数组,并提供相关的演示代码。 一...
    99+
    2023-06-24
    数组 git 教程
  • 使用java代码代替xml实现SSM教程
    目录1.在IDEA中创建一个普通的maven项目2.添加Spring配置3.添加SpringMVC配置5.测试5.1创建HelloController类5.2创建HelloContr...
    99+
    2022-11-12
  • Python自动操作神器PyAutoGUI的使用教程
    目录GUI 控制神器鼠标操作鼠标移动鼠标点击鼠标拖动鼠标滚动屏幕处理获取屏幕截图键盘输入键盘函数特殊符号快捷键信息框总结我们以前讲过怎样使用 Python 在浏览器中实现页面自动化操...
    99+
    2022-11-11
  • YOLOV8最强操作教程.
    YoloV8详细训练教程. 相信各位都知道yolov8发布了,也是U神大作,而且V8还会出论文喔! 2023.1.17 更新 yolov8-grad-cam热力图可视化链接 2023.1.20 ...
    99+
    2023-08-31
    python 深度学习 开发语言 pytorch 人工智能
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作