如何通过DOM对象,来解析xml

通过php对象来解析xml的步骤:

1:要把xml文件读入进来,形成一个xml文件

2:再通过getElementTagName('标签名')得到一组节点
   对应的js操作就是-->document.getElementsByTagName()

3:再把2步中,得到一组对象,取得其某一个


以03.xml为例:

<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book>
	<title>天龙八部</title>
	<price>28</price>
</book>
<book>
	<title>谁的青春不迷茫</title>
	<price>28.5</price>
</book>
</bookstore>

首先得创建一个DOM解析对象,其作用就是可以把你的XML文件加载入内存并分析,这样我们就可以利用Object分析XML了

// 创建DOM解析对象
$dom = new DOMdocument('1.0','utf-8');

DOM解析对象创建好以后,就应该把你需要解析的xml文件引进来了,如:

$dom->load('./03.xml');

下面就该是获取需要的文本节点了,以取天龙八部这个文本节点为例

首先得得到title节点:

<pre name="code" class="php">// 得到title节点列表
$list = $dom->getElementsByTagName('title');
//print_r($list);   // DOMNodeList Object ( [length] => 2 ) 
<pre name="code" class="php">/*
DMONodelist
有1个属性:length 代表取得节点数量
有1个方法:item(N) 代表取得第N个节点
*/
 
 

很明显,“天龙八部”是第一个<title></title>的子节点,因此要在title节点列表中获取第一个节点,也就是N为0的节点

$title0 = $list->item(0);
因为 “天龙八部”是$title0的子节点列表中的第一个节点,所以我们要在$title0中获取子节点列表中的item(0)

$text = $title0->childNodes->item(0);
所以最后取出“天龙八部”为:

echo $text->wholeText; // 天龙八部

一步获取就是:

echo $dom->getElementsByTagName('title')->item(1)->childNodes->item(0)->wholeText;
 

其实也可以直接这样写:

echo $dom->getElementsByTagName('title')->item(1)->nodeValue;




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值