PHP5中增強了XML的支持,使用DOM擴展了XML操作的能耐。這些函數作為 PHP5 核心的一部分,無需安裝即可使用。
下面的範例簡單的示範了DOM對XML的操作,詳細解釋請看程式碼中的註解
/***/ $dom = new DomDocument();
//然後載入XML檔案
$dom -> load("test.xml");
//輸出XML檔案
ent //header("Cont -type:text/xml; =gb2312");
//echo $dom -> saveXML();
//儲存XML文件,並回傳值為int(檔案大小,以位元組為單位)
//$dom -filesave("newfile .xml");
echo "
取得所有的title元素:
";
$titles = $dom -> getElementsByTagName("title"); {
echo $node -> textContent . "
";
//這樣也可以
//echo $node->firstChild->data . "
"; //echo $node->firstChild->data . "
"; "
從根結點遍歷所有結點:
";
foreach ($dom->documentElement->childNodes as $items) {
//如果節點是一個元素(nodeType == 1)且名字是item就繼續循環
if ($items->nodeType == 1 && $items->nodeName == "item") {
foreach ($items->childNodes as $titles) { 🎠一個元素,而名字是title就印製它.
if ($titles->nodeType == 1 && $titles->nodeName == "title") {
print $titles->textContent . "n"; }
}
}
*/
//使用XPath查詢資料
echo "
使用XPath //使用XPath查詢資料
echo "
使用XPath //使用 $Path
titles = $xpath->query("/rss/channel/item/title");
foreach ($titles as $node)
{
echo $node->textContent."
"; *
這樣和使用getElementsByTagName()方法差不多,但是Xpath要強大的多
深入一點可能是這樣:
/rss/channel/item[position() = 1]/title 返回第一個item元素的所有
元素的所有 rss/channel/item/title[@id = '23'] 傳回所有含有id屬性且值為23的title
/rss/channel/&folder&/title 傳回所有articles元素下面的title(譯者註:&folder&代表目錄深度)
*/
以上就是在PHP5使用DOM控制XML(1)的內容,
更多相關文章請關注PHP中文網(www.php.cn)!