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"元素中。 阅读详情

相关推荐

别再让信号‘撞墙’了!手把手教你用嘉立创阻抗计算器搞定PCB高速线(附免费压层结构选择)

本文详细介绍了如何使用嘉立创阻抗计算器解决PCB高速线设计中的阻抗匹配问题,避免信号反射和传输损耗。通过免费压层结构选择和五步计算法,帮助工程师快速掌握USB3.0差分线等高速信号的设计技巧,提升PCB设计效率和信号质量。

weixin_30736301的博客 279

php 使用DOMDocument 解析xml

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

chishi2051的博客 189

真双口RAM---Quartus与Vivado开发环境区别对比

2、写和写冲突:表示两个端口写使能同时有效且写地址相同,此时需要关断一个写,把两个写端口都需要更新的值处理到一个写端口上面,任何的DP RAM 都不支持写和写冲突。以上述直方图统计使用为例,博主在仿真过程中发现,vivado真双口RAM--B端口读写延迟2个clk;1、读和写冲突:如果读和写同时有效,且读和写是同一个地址时,发生RAM读写冲突,此时会把最新的写数据直接赋给读数据,称为写穿通到读。

weixin_54470733的博客 3582

解读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

宝塔面板全栈部署指南:Node后端+React前端与数据库配置实战

本文提供了一份详尽的宝塔面板全栈部署实战指南,涵盖Node.js后端、React前端与数据库的完整配置流程。文章深入解析了环境准备、数据库创建与导入、Node服务部署、PM2进程守护、React应用构建与托管,以及线上环境变量管理与安全配置等核心步骤,帮助开发者高效、稳定地将项目部署至生产环境。

weixin_29232121的博客 90

Unity 多线程编程笔记 _Task详解

士大夫

weixin_43405845的博客 4384

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

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

weixin_42148975的博客 278

U型槽微带贴片天线:从理论公式到带宽扩展实战

本文深入探讨了U型槽微带贴片天线的设计与带宽扩展实战。针对传统微带天线带宽窄的痛点,详细解析了通过引入U型槽形成双谐振点以拓宽带宽的原理,并提供了从MATLAB理论计算、ANSYS HFSS仿真建模到参数优化的一站式工程指南。文章还分享了多种带宽扩展组合技巧及仿真与实测避坑经验,助力射频工程师设计出高性能的宽带微带天线。

weixin_29168153的博客 447

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

Python + Google AI 自动修复 Sonar Bug 实践

在工作中总会遇到种种不期而至的需求,比如前段时间突然要修复所有 Sonar Bug,涉及各种琐碎的代码风格问题,包括但不限于语法不规范、废弃注释等问题。这些项目都已经持续开发几年了,Sonar 上的问题层出不穷,各种问题已经累积到了上万个,手动修复不但费时费力,而且过程异常枯燥。

子洋 Blog 2416

YOLOv10改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度

HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。

Limiiiing的博客 104

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

【Unity 实用工具篇】 | Book Page Curl 快速实现翻书效果

游戏和应用开发中,真实感的交互设计能显著提升用户体验。Unity3D图书翻页效果插件为开发者提供了一种便捷方式,可在项目中实现高度拟真的书籍翻页动画。 本文介绍该插件的快速使用方法,涵盖从基础导入到自动翻页效果创建的全过程,让我们快速实现翻页效果。

努力前行,总会成为自己心中的那道光 1万+

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

PHP 和 XML:PHP 中的 XML 解析

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

新华编程特战队 1492

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

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

weixin_42097557的博客 2161

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的博客 2246

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、付费专栏及课程。

余额充值