当前位置: 首页 > news >正文

XML XPATH simpleXML

XPath

通过DOM结构定位节点,在数据量很大的情况下速度下降的很厉害。解决方法是XPath。Xpath的作用:用于快速定位节点

position()是节点的位置,节点的位置是从1开始

simpleXML

PHP5以上提供了一个simpleXML对象来操作XML。把XML的节点转换成对象和数组去操作。

思路:先讲xml字符串转化成对象及数组

/****************************************************************/

<?php
$xml= file_get_contents('books.xml');//获取XML的字符串
$simple=new SimpleXMLElement($xml);//把xml字符串转换成数组 $simple代表根节点
//1、查询
//echo '<pre>';
//var_dump($simple);

echo "<table border='1'>";
foreach ($simple->book as $book){
$attr=$book->attributes();//获取节点的属性
echo "<tr>";
echo "<td>".$book->name."</td>";
echo "<td>".$book->price."</td>";
echo "<td>".$attr['type']."</td>";
echo "</tr>";
}
echo "</table>";
//添加
/*
$book=$simple->addChild('book');//在根节点下加book节点
$book->addChild('name', 'C++');
$book->addChild('price','11');
$book->addAttribute('type', '动态语言');
$simple->saveXML('books.xml');//保存xml文件
*
*/
//更新
/*
foreach($simple->book as $book){
$book->name.='-北京出版社';
}
$simple->saveXML('books.xml');
*
*/
//删除
for($i=count($simple->book)-1;$i>=0;$i--){//从最后往前删除对应的元素,
//如果从前往后删除元素,则$i不停变换是的对应的元素并不会被删除
$currentbook=$simple->book[$i]; //当前的图书

$attr=$currentbook->attributes();
if($attr['type']=='动态语言')
{
unset($simple->book[$i]);
}
}
$simple->saveXML('books.xml');

转载于:https://www.cnblogs.com/yd09023/p/5879031.html

相关文章:

  • 学习笔记--mysql的AB复制
  • linux ARP攻击处理
  • C语言基础及指针⑥字符操作
  • Permison Denied
  • 文本处理工具与正则表达式、grep
  • C#中将DataTable导出为HTML的方法
  • day9---多线程,线程锁,队列
  • epoll反应堆模型
  • 这三个创新的主卧装修方案可以学习下!
  • Git中文版教程
  • 枚举
  • AppScan安全问题解决方案
  • POJ 2115 C Looooops扩展欧几里得
  • 甲骨文:Java 9将推迟到2017年7月发布
  • 修改Window的hosts文件提示“该文件被其他程序占用”解决方案
  • [case10]使用RSQL实现端到端的动态查询
  • [NodeJS] 关于Buffer
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • C++入门教程(10):for 语句
  • CSS居中完全指南——构建CSS居中决策树
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Java 内存分配及垃圾回收机制初探
  • JavaScript函数式编程(一)
  • MYSQL 的 IF 函数
  • Service Worker
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 大型网站性能监测、分析与优化常见问题QA
  • 翻译--Thinking in React
  • 技术:超级实用的电脑小技巧
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 微服务框架lagom
  • 第二十章:异步和文件I/O.(二十三)
  • ​Spring Boot 分片上传文件
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (2)STM32单片机上位机
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (javascript)再说document.body.scrollTop的使用问题
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (六)激光线扫描-三维重建
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (万字长文)Spring的核心知识尽揽其中
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .a文件和.so文件
  • .Net6 Api Swagger配置
  • .NetCore 如何动态路由
  • .NET文档生成工具ADB使用图文教程
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @EnableConfigurationProperties注解使用
  • @ModelAttribute注解使用
  • @在php中起什么作用?
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [bzoj2957]楼房重建