PHP課程
/ XML DOM 解析器
XML DOM 解析器
XML DOM 解析器
DOM 解析器是一個基于樹的解析器。
看看以下的 XML 文檔片段:
<?xml version="1.0" encoding="UTF-8"?> <from>Jani</from>
DOM 將上述 XML 視為樹結(jié)構(gòu):
Level 1: XML Document Level 2: Root element: <from> Level 3: Text element: "Jani"
安裝
DOM 解析器函數(shù)是 PHP 核心的一部分。使用這些函數(shù)無需安裝。
XML 文件
我們將在例子中使用下面的 XML 文件("note.xml"):
<?xml version="1.0" encoding="UTF-8"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
加載并輸出 XML
我們希望初始化 XML 解析器,加載 xml,并輸出它:
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
上述代碼的輸出將是:
Tove Jani Reminder Don't forget me this weekend!
如果您在瀏覽器窗口中選擇“查看源代碼”,您將看到以下 HTML:
<?xml version="1.0" encoding="UTF-8"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
上面的例子創(chuàng)建了一個 DOMDocument-Object,并從 "note.xml" 中加載了 XML。
然后,saveXML()
函數(shù)將內(nèi)部 XML 文檔放入一個字符串中,這樣我們就可以輸出它。
遍歷 XML
我們要初始化 XML 解析器,加載 XML,并遍歷 <note>
元素的所有元素:
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br>"; } ?>
上述代碼的輸出將是:
#text = to = Tove #text = from = Jani #text = heading = Reminder #text = body = Don't forget me this weekend! #text =
在上面的例子中,您會看到每個元素之間都有空的文本節(jié)點(diǎn)。
當(dāng) XML 生成時,它通常在節(jié)點(diǎn)之間包含空白字符。XML DOM 解析器將這些視為普通元素,如果您不注意它們,有時會導(dǎo)致問題。
如果您想學(xué)習(xí)更多關(guān)于 XML DOM 的知識,請訪問我們的 XML 教程。