通过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;