XML XPATH simpleXML

XPath

經過DOM結構定位節點,在數據量很大的狀況下速度降低的很厲害。解決方法是XPath。Xpath的做用:用於快速定位節點php

position()是節點的位置,節點的位置是從1開始數組

simpleXML

PHP5以上提供了一個simpleXML對象來操做XML。把XML的節點轉換成對象和數組去操做。spa

思路:先講xml字符串轉化成對象及數組xml

/****************************************************************/對象

<?php
$xml= file_get_contents('books.xml');//獲取XML的字符串
$simple=new SimpleXMLElement($xml);//把xml字符串轉換成數組 $simple表明根節點
//一、查詢
//echo '<pre>';
//var_dump($simple);blog

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');字符串

相關文章
相關標籤/搜索