lt; |
|
> |
gt; |
‘ |
apos; |
“ |
quot; |
我使用的是DOMDocument對(duì)象來(lái)操作xml,感覺(jué)用起來(lái)比simpleXml科學(xué)一些,當(dāng)然第一天使用php,純屬個(gè)人感覺(jué)。DOMDocument有幾個(gè)常用的屬性和方法。
屬性 | 作用 |
attributes | 節(jié)點(diǎn)屬性集合 |
parentNode | 節(jié)點(diǎn)父節(jié)點(diǎn) |
documentElement | 文檔根節(jié)點(diǎn) |
nodeName | 節(jié)點(diǎn)的名字 |
nodeType | 節(jié)點(diǎn)類(lèi)型 |
nodeValue | 節(jié)點(diǎn)值 |
Text | 節(jié)點(diǎn)及其子節(jié)點(diǎn)轉(zhuǎn)換為文字 |
方法 | 作用 |
appendChild | 為節(jié)點(diǎn)添加子節(jié)點(diǎn) |
createAttribute | 創(chuàng)建屬性節(jié)點(diǎn) |
createElement | 創(chuàng)建元素 |
getElementsByTagName | 通過(guò)節(jié)點(diǎn)名獲取節(jié)點(diǎn)集合 |
hasChildNodes | 判斷節(jié)點(diǎn)是否有子節(jié)點(diǎn) |
insertBefore | 在節(jié)點(diǎn) |
Load | 通過(guò)文檔路徑加載xml |
loadXML | 加載zml字符串 |
removeChild | 刪除子節(jié)點(diǎn) |
removeAttribute | 刪除屬性節(jié)點(diǎn) |
save | 保存文檔 |
$path=$_SERVER["DOCUMENT_ROOT"].'/books.xml'; $books=new DOMDocument(); $books->load($path);
$bookElements=$books->getElementsByTagName('book'); foreach($bookElements as $book){ foreach ($book->attributes as $attr) { echo strtoupper($attr->nodeName).' —— '.$attr->nodeValue.'br/>'; } echo "AUTHOR: "; foreach ($book->getElementsByTagName('author') as $author) { echo $author->nodeValue.' '; } echo 'br/>br/>'; }
當(dāng)然對(duì)于很多屬性,只想讀一個(gè),可以通過(guò)item(index)方法按索引讀取
echo $book->attributes->item(1)->nodeValue;
還可以通過(guò)強(qiáng)大的xpath查詢(xún)
$xpath = new domxpath($books); $bookElements=$xpath->query("/books/book");
foreach($bookElements as $book){ foreach ($book->attributes as $attr) { #$book->setAttribute($attr->nodeName,strtoupper($attr->nodeValue)); $attr->nodeValue=strtoupper($attr->nodeValue); } echo "AUTHOR: "; foreach ($book->getElementsByTagName('author') as $author) { $author->nodeValue=strtoupper($author->nodeValue); } } $books->save($path);
對(duì)屬性修改可以直接訪問(wèn)其nodeValue改動(dòng),也可以使用setAttribute方法,改動(dòng)完了別忘了使用save保存。
$book->setAttribute($attr->nodeName,strtoupper($attr->nodeValue)); $attr->nodeValue=strtoupper($attr->nodeValue);
$newBook=$books->createElement('book'); #創(chuàng)建新元素 $newBook->setAttribute('name','PHP Objects, Patterns, and Practice');#創(chuàng)建新屬性,方法一 $publisher=$books->createAttribute('publisher');#創(chuàng)建新屬性,方法二 $publisher->nodeValue='Apress L.P'; $newBook->appendChild($publisher); #把屬性添加到元素上 $author=$books->createElement('author');#創(chuàng)建子元素 $author->nodeValue='Matt Zandstra'; $newBook->appendChild($author);#把子元素添加到父元素上 $books->documentElement->appendChild($newBook);#添加整個(gè)節(jié)點(diǎn) $books->save($path);
$first=$bookElements->item(0); $first->removeAttribute('publisher'); $second=$bookElements->item(1); $second->parentNode->removeChild($second); $books->save($path);
到此這篇關(guān)于使用php操作xml教程的文章就介紹到這了,更多相關(guān)php操作xml內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:赤峰 溫州 怒江 金華 酒泉 洛陽(yáng) 七臺(tái)河 白城
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用php操作xml教程》,本文關(guān)鍵詞 使用,php,操作,xml,教程,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。