问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP使用DOM和simplexml读取xml文档的方法示例

发布网友 发布时间:2022-04-13 02:05

我来回答

1个回答

热心网友 时间:2022-04-13 03:35

本文实例讲述了PHP使用DOM和simplexml读取xml文档的方法。分享给大家供大家参考,具体如下:
实例
用DOM获取下列xml文档中所有金庸小说的书名,该xml文档所在位置为
./books.xml:
<?xml
version="1.0"
encoding="utf-8"?>
<root>
<book>
<title>天龙八部</title>
<author>金庸</author>
</book>
<book>
<title>陆小凤</title>
<author>古龙</author>
</book>
<book>
<title>倚天屠龙记</title>
<author>金庸</author>
</book>
<book>
<title>西游记</title>
<author>吴承恩</author>
</book>
<book>
<title>神雕侠侣</title>
<author>金庸</author>
</book>
<book>
<title>射雕英雄传</title>
<author>金庸</author>
</book>
</root>
用DOM代码实现:
DOM读取xml文档步骤:1、创建DOM对象——》2、载入DOM文档内容——》3、截取要读取内容所在的标签——》获得要读取的内容。
header('Content-type:text/html;charset=utf-8');
$arr=array();
$dom
=
new
DOMDocument();//创建DOM对象
$dom->load('./books.xml');//载入xml文档
print_r($dom);
echo
'<hr>';
$dom
=
$dom->getElementsByTagName('book');//截取标签
for($i=0;$i<$dom->length;$i++){
if($dom->item($i)->childNodes->item(1)->childNodes->item(0)->wholeText=='金庸'){
$arr[]
=
$dom->item($i)->childNodes->item(0)->childNodes->item(0)->wholeText.'<br
/>';//获取内容
}
}
print_r($arr);
使用
getElementsByTagName

childNodes
后返回的都是对象,所以它们后面必须使用
item(int),哪怕它们返回的对象里面只包含一个项目,也必须用item(0)来指定,否则就会出错。
用simplexml代码实现:
$simxml
=
simplexml_load_file('./books.xml');
$t
=
$simxml->book;
$arr=array();
foreach
($t
as
$v){
if($v->author=='金庸'){
$arr[]
=
(string)$v->title;
}
}
print_r($arr);
使用
simplexml_load_file
后返回的是对象,该对象里的项目既有对象又有数组,不管是对象还是数组,要循环里面的内容都可以用
foreach。该实例最后获取的内容
$v->title
其实是个对象,所以要用
string
转化为字符串。
PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:
在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson
在线格式化XML/在线压缩XML:
http://tools.jb51.net/code/xmlformat
XML在线压缩/格式化工具:
http://tools.jb51.net/code/xml_format_compress
XML代码在线格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP针对XML文件操作技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 孩子正在积极入团中考报名政治面貌填什么 怎么召唤凋零风暴? 我的世界怎么召唤巨型凋零 凋零风暴召唤方法介绍 我的世界什么是凋零风暴 怎么召唤 我的世界:如何召唤隐藏boss,凋零风暴! PHP将XML映射为HTML的代码实例 手机充电接口松了,怎么办 手机充电器插头松了,有什么办法吗!除了在买一个以外! 手机充电插头松了怎么办小妙招 真三国无双7猛将传if完成有什么用 真三国无双7IF剧情一定要在故事模式下吗 真三国无双7猛将传IF攻略 真三国无双7 套用if旗帜什么意思? 真三国无双7lf什么意思 真三国无双7猛将传if是什么意思 真三国无双7if剧情是什么 游戏特色全分析 求一个PHP把一维数组转化为xml格式和再从xml格式转回一维数组的方法,求示例代码。谢谢。 想找个好点的语音开黑软件怎么就这么难的,大家有没有什么推荐的? 羽绒服可以水洗 win7下无法打开注册表怎么办 四川理工技师学院几本 自贡理工大学是个几本的学校? 四川理工算几本?有哪些分校?宜宾学院又是什么类型的学校 成都内有哪些公立大学,分别几本 2018年7月长沙市社保补缴期限要先停保吗 四川省哪些高校有工程管理专业,都是几本? 天气很冷的画面是怎样的?至少要用100字 2019泉州教师资格认定中《教师资格认定申请表》填写即网报填写注意哪些内容? 重疾险保额越高越好吗 重疾险保额最高多少钱 高保额重疾保险内容 方脸又长适合什么卷发 方脸适合什么烫发 不完美脸变完美 方脸适合什么长卷发 在网吧上网能把我座的这台机子的IP地址改成别的地方的吗?如果能怎么改啊???急!!! 微信办理的苏通卡etc计账卡工行电子账号进行帮定外省银行卡怎样扣费要充值吗? 苹果六咋截图 我在支付宝车主服务申请了个中国银行的etc给我发来个苏通卡记账卡能用吗? 微信办理的苏通卡,卡内余额不够扣的情况下通行过了,怎么补交余款? 办理苏通卡须要用借记卡还是用信用卡