PHP解析和生成xml(DOMDocument版)

PHP中解析HTML的常用方法 本文介绍了一些常用的PHP方法和技巧,用于解析HTML文档。虽然在处理复杂的HTML文档时可能会有一些限制,但对于简单的HTML解析任务,它是一种简洁而有效的方法。在PHP中,解析HTML是一个常见的任务,我们可以使用各种方法来处理和操纵HTML文档。其中一种常用的库是"Simple HTML DOM",它提供了类似于jQuery的选择器语法,方便地从HTML文档中提取和操纵数据。上面的代码中,我们首先包含了"Simple HTML DOM"库的文件,然后使用。在上面的代码中,我们使用正则表达式。 阅读详情

上次和大家分享了SimpleXML操作xml的一些知识,但是php中除了simplexml还有DOMDocument,这次就着重来看看DOMDocument的用法,还是把生成xml和解析xml分开写

1.xml的生成

DOMDocument操作xml要比先前的simplexml要复杂一点,我觉得simplexml就想java里的dom4j,不管怎样原理都是一样的。如果把DOMDocument里的节点,属性看做是枝叶那么DOMDocument的DOMDocument就是根,节点和属性都挂载在这个对象下面。看看下面的代码就很清楚了

<?php
  $doc=new DOMDocument('1.0','utf-8');
  //创建根节点
  $root=$doc->createElement("StudentInfo");
  //创建第一个子节点
  $item=$doc->createElement("Item");

  $name=$doc->createElement("name","蔡依林");
  $studentnum=$doc->createElement("num","2009010502");
  //创建属性(phpdom可以把任何元素当做子节点)
  $id=$doc->createAttribute("id");
  $value=$doc->createTextNode('1');
  $id->appendChild($value);
  //在父节点下面加入子节点
  $item->appendChild($name);
  $item->appendChild($studentnum);
  $item->appendChild($id);

  $item2=$doc->createElement("Item");
  $name2=$doc->createElement("name","潘玮柏");
  $studentnum2=$doc->createElement("num","2009010505");
  $id2=$doc->createAttribute("id");
  $value2=$doc->createTextNode('2');
  $id2->appendChild($value2);

  $item2->appendChild($name2);
  $item2->appendChild($studentnum2);
  $item2->appendChild($id2);

  $root->appendChild($item);
  $root->appendChild($item2);
  //把根节点挂载在DOMDocument对象
  $doc->appendChild($root);
  header("Content-type: text/xml");
  //在页面上输出xml
  echo $doc->saveXML();
  //将xml保存成文件
  $doc->save("stu.xml");
?>

这段代码仔细看的话其实不复杂,可能性在id属性的那个地方会有点疑问,文本节点也必须挂载在DOMDocument下面,之后把文本节点挂载在属性下面。来看下生成的xml


其实DOMDocument是首先生成节点或属性,而xml的层级关系是最后通过addchild来体现的


2.DOMDocument解析


<?php
  $doc=new DOMDocument();
  //如果是解析xml字符串则使用loadXML
  $doc->load('stu.xml');
  //取得根节点
  $root=$doc->documentElement;
  //通过标记的名字取得对应的元素
  $items=$root->getElementsByTagName('Item');
  foreach($items as $key=>$val){
   // echo count($val->attributes);
    //id是第一个属性所以使用item(0),nodeValue用来取得节点的值
    echo $val->attributes->item(0)->name.":".$val->attributes->item(0)->nodeValue."   ";
    
    foreach($val->getElementsByTagName('name') as $key2=>$val2){
       echo $val2->nodeValue."   ";
    }
    foreach($val->getElementsByTagName('num') as $key3=>$val4){
       echo $val4->nodeValue."</br>";
   }
  }
?>

解析的话重在理解,getElementsByTagName方法,attributes属性和item是解析xml的重点。别的都算简单,看看解析出来的东西

总的来说是比simplexml麻烦一些,但是作为程序员还能接受吧。


PHP DOMDocument解析和生成XML的方法详解 然后,我们通过遍历该节点列表,使用getAttribute()方法获取每个元素节点的"title"和"author"属性值,并使用getElementsByTagName()方法获取"price"节点的文本值。同时,通过使用createElement()和appendChild()方法,我们可以创建和添加新的元素节点,并使用save()方法将DOMDocument对象保存为XML文档。然后,我们创建了"title"、"author"和"price"元素,并将它们添加到"book"元素中。 阅读详情

相关推荐

用电脑通过网口控制keysight示波器

Keysight HD304MSO示波器提供1GHz带宽、14位高精度ADC及10.1英寸触控屏,支持50μV低噪声信号捕获和1.3M波形/秒刷新率。配备4通道探头、逻辑分析仪接口及100Mpts存储深度,含故障诊断、FFT等高级功能。通过网线连接电脑安装TightVNC软件(示波器IP为169.254.163.24)可实现远程控制,相比U盘传输更高效。(149字)

johnboat的专栏 1136

php 使用DOMDocument 解析xml

Sample Code: $xml = "<?xml version='1.0' encoding='UTF-8'?><register> <email>787887347@qq.com</email><pass>dGV...

chishi2051的博客 189

MATLAB功率谱函数psd与pwelch的使用

在网上看到 clear; Fs=1000; n=0:1/Fs:1; y=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); Nfft=1000; window=hanning(100); noverlap=20; dflag='none'; [Pxx,f]=psd(y,Nfft,Fs,window,noverlap); figure plot(f,10*log10(Pxx)); xlabel('frequency/Hz');ylab

qq_41687938的博客 2万+

解读PHP DOMDocument在解析XML文件中的作用

在使用PHP对XML文件进行解析的时候,我们可以用很多方法。在这里,我们将为大家重点介绍如何使用PHP DOMDocument来及逆行能够XML文件的解析。 关于用到的XML文件还以“Php Xml处理之simplexml使用方法浅谈”一文中的XML为例,文件名为:me.xml。代码如下: PHP XML处理XML代码    ?xml version="1.0" encoding="u

rongwenbin的专栏 791

短视频mssdk中get_token协议逆向与加密流程深度解析

本文深度解析了短视频mssdk中get_token协议的逆向分析与加密流程。通过抓包、Frida Hook、静态分析等手段,详细拆解了协议数据的Protobuf结构、设备信息采集来源,并重点剖析了其核心加密链路:zlib压缩、自定义TEA算法与AES-CBC加密,最终实现完整的协议模拟。

flower的专栏 556

数据结构(超详细讲解!!)第十七节 队列应用(杨辉三角)

杨辉三角

2201_76115387的博客 1376

php dom 换行,使用PHP DOMDocument()类时保留换行符[复制]

参见英文答案 > PHP XML how to output nice format7个当您查看源代码时,我的HTML看起来像这样:原始HTML但在我这样做之后:$dom = new DOMDocument();$dom->loadHTML($html);$dom->saveHTML();我的源代码转向:新的...

weixin_42148975的博客 278

【100%通过率】华为OD机试真题 Python【数字最低位排序】【最低位排序】

2023华为OD机试真题 Python【数字最低位排序】【最低位排序】 给定一个非空数组(列表) 起元素数据类型为整型 请按照数组元素十进制最低位从小到大进行排序 十进制最低位相同的元素,相对位置保持不变 当数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位

MISAYAONE的博客 1902

PHP用DOMDocument解析xml文件

例子1: 循环所有 "artist" 元素 (nodetypes = 1),查找与 JavaScript 所传数据向匹配的名字找到 CD 包含的正确 artist输出 album 的信息 xml文件: Empire Burlesque Bob Dylan USA Columbia 10.90 1985 Hide yo

Z大钊 1582

Pytest教程:Pytest插件原理

Pytest的插件系统是其强大功能的核心,它允许用户和开发者扩展和定制测试框架的行为。要深入理解Pytest插件的原理,我们需要从Pytest的架构和设计模式开始,然后深入到底层源码。

旦莫的博客 637

【麒麟系统】Rsync文件复制与同步工具

本文摘要: Rsync是一款Linux/Unix系统标配的高效文件同步工具,支持增量传输、SSH加密、断点续传等核心功能,相比SCP具有显著优势。文章详细解析了Rsync的五种标准语法格式和常用参数组合,重点介绍了本地同步、远程SSH同步(推送/拉取)的实操方法,并提供了密钥免密登录配置方案。针对企业运维场景,还讲解了文件过滤、镜像同步(--delete)、迁移同步(--remove-source-files)、空运行预校验(--dry-run)等高级功能,以及带宽限速等优化技巧,帮助用户安全高效地完成各类

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 999

php dom生成xml,PHP解析跟生成xml(DOMDocument版)

PHP解析和生成xml(DOMDocument版)上次和大家分享了SimpleXML操作xml的一些知识,但是php中除了simplexml还有DOMDocument,这次就着重来看看DOMDocument的用法,还是把生成xml和解析xml分开写1.xml的生成DOMDocument操作xml要比先前的simplexml要复杂一点,我觉得simplexml就想java里的dom4j,不管怎样原理...

weixin_39555320的博客 125

linux系统宝塔服务器temp文件夹里总是被上传病毒php脚本

服务器时不时的会发送短信说你服务器有病毒,找到了这个tmp文件,删除了之后又有了。确实是有很多人就这么无聊,每天都攻击你的服务器。找了很久的原因,网上也提供了一大堆方法,但都是很简陋的答案,具体怎么操作并没有说。没办法只能自己去排查这个问题。从两个角度来考虑,第一是服务器系统问题,比如宝塔的漏洞。但一时半会看不出问题来。只能去排查自己的项目代码。最后了解到代码确实是存在漏洞的。但代码中也确实了很多的校验,为什么会存在漏洞了?这就不得不从上传的过程开始说起。

guiplan 1497

php 生成 document,PHP解析和生成xml(DOMDocument版)

上次和大家分享了SimpleXML操作xml的一些知识,但是php中除了simplexml还有DOMDocument,这次就着重来看看DOMDocument的用法,还是把生成xml和解析xml分开写1.xml的生成DOMDocument操作xml要比先前的simplexml要复杂一点,我觉得simplexml就想java里的dom4j,不管怎样原理都是一样的。如果把DOMDocument里的节点,...

weixin_39768695的博客 194

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

PHP 和 XML:PHP 中的 XML 解析

PHP 中的 XML 解析是 Web 开发中的一项关键任务,涉及从 XML 文档中提取和操作数据。SimpleXML 扩展通过提供一种面向对象的方法来访问 XML 元素,从而简化了此过程。借助 SimpleXML,开发人员可以毫不费力地导航 XML 结构并使用最少的代码检索数据,从而增强可读性和简单性。另一方面,PHP 的 DOM 扩展提供了更全面的解决方案,支持读取和写入 XML。load 和 getElementsByTagName 等函数使开发人员能够有效地操作 XML 文档。

新华编程特战队 1492

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

php domdocument方法,PHP实现基于DOMDocument解析和生成xml的方法详解

这篇文章主要介绍了PHP基于DOMDocument解析和生成xml的方法,结合具体实例形式分析了php使用DOMDocument解析xml节点及xml文件生成的各种常用操作技巧,需要的朋友可以参考下1. xml的生成DOMDocument操作xml要比先前的simplexml要复杂一点,我觉得simplexml就想Java里的dom4j,不管怎样原理都是一样的。如果把DOMDocument里的节点...

weixin_42097557的博客 2161

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

php dom xml解析,PHP基于DOMDocument解析和生成xml的方法分析

本文实例讲述了PHP基于DOMDocument解析和生成xml的方法。分享给大家供大家参考,具体如下:前面和大家分享了SimpleXML操作xml的一些知识,但是php中除了simplexml还有DOMDocument,这次就着重来看看DOMDocument的用法,还是把生成xml和解析xml分开写1. xml的生成DOMDocument操作xml要比先前的simplexml要复杂一点,我觉得si...

weixin_39716921的博客 226

php+domdocument+json,PHP基于DOMDocument解析和生成xml的方法分析

本文实例讲述了PHP基于DOMDocument解析和生成xml的方法。分享给大家供大家参考,具体如下:前面和大家分享了SimpleXML操作xml的一些知识,但是php中除了simplexml还有DOMDocument,这次就着重来看看DOMDocument的用法,还是把生成xml和解析xml分开写1. xml的生成DOMDocument操作xml要比先前的simplexml要复杂一点,我觉得si...

weixin_39907220的博客 160

PHP中使用DOMDocument来处理HTML、XML文档

通过上面两个简单的小例子,相信大家已经对这个 DOMDocument 操作XML类文件解析的方式非常感兴趣了。不过相对于正则解析的方式它们的性能有多大的差异并没有找到相关的测试,不过一般正常的情况下网站的HMTL文档都不会太大,毕竟各个网站也会考虑自身的加载速度,如果文档非常大的话用户体验也会很差,所以这套接口用来进行日常爬虫的分析处理工作基本是没有任何问题的。

企业级技术与网站app运营 1362

如何使用 PHP 爬虫获取并解析 XML 数据

在本篇文章中,我们学习了如何使用 PHP 爬虫获取并解析 XML 数据,其中包括使用 cURL 库和 file_get_contents() 函数获取 XML 数据,使用 SimpleXML 和 DOMDocument 解析 XML 数据。在 cURL 库取得 XML 数据的同时, file_get_contents() 方式也可以取得 XML 数据。这里我们使用了 simplexml_load_string() 方法来解析 XML 字符串并将其转换为对象。PHP 提供了多种方法来解析 XML 数据。

Q2780683887的博客 2245

php dom xml解析,Php Xml解析之DOMDocument使用方法浅解

Php Xml解析之DOMDocument使用方法浅解用到的XML文件还以“Php Xml处理之simplexml使用方法浅谈”一文中的XML为例,文件名为:me.xml。代码如下:PHP XML处理XML代码xmlversion="1.0"encoding="utf-8"?><phplamp><post><titleid="1">PHP XML处理介绍一...

weixin_32243309的博客 251

php domdocument getattribute,PHP中使用DOMDocument来处理HTML、XML文档

其实从PHP5开始,PHP就为我们提供了一个强大的解析和生成XML相关操作的类,也就是我们今天要讲的 DOMDocument 类。不过我估计大部分人在爬取网页时还是会喜欢用正则去解析网页内容,学了今天的这个类下回就可以尝试下使用这个PHP自带的方式来进行解析分析了。解析HTML// 解析 HTML$baidu = file_get_contents('https://www.baidu.com')...

weixin_33023873的博客 179

php domelement domdocument,初识php– DOMDocument类

今天遇到需要解析xml,用到了DOMDocument类文件1、xml的解析$doc=new DOMDocument();//如果是解析xml字符串则使用loadXML//$encryptMsg = file_get_contents(‘php://input’);//$xml_tree->loadXML($encryptMsg);$doc->load(‘stu.xml’);//取得根节...

weixin_42298507的博客 524
上一篇: PHP生成和解析xml(SimpleXML版)
下一篇: PHP操作xml(XMLWriter版)
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值