php中的XML DOM(11),xmldom_PHP教程
php中的XML DOM(11),xmldom
7.创建节点
在dom操作中,增删改操作必须要找父节点
1、DOMElement DOMDocument::createElement ( string $name [, string $value ] )
创建节点 ,返回的是一个节点对象
string $name :节点的名 (元素名)
[, string $value ] :节点的值
2、DOMNode DOMNode::appendChild ( DOMNode $newnode )
追加子节点
DOMNode $newnode:子节点
3、int DOMDocument::save ( string $filename )
将dom中的数据保存到指定的文件中
4、documentElement属性,表示dom模型中的根节点
<?<span>php header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> ); $dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> ); $dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> ); </span><span>//</span><span> 创建节点仅仅是表示在内存中创建出这个节点对象,但这个对象和我们之前的 </span><span>//</span><span> dom模型没有任何联系</span> $person = $dom->createElement ( <span>'</span><span>person</span><span>'</span><span> ); $name </span>= $dom->createElement ( <span>'</span><span>name</span><span>'</span>, <span>'</span><span>huangliu</span><span>'</span><span> ); $age </span>= $dom->createElement ( <span>'</span><span>age</span><span>'</span>, <span>'</span><span>18</span><span>'</span><span> ); </span><span>//</span><span> 将name和age做为子节点追加至person节点</span> $person-><span>appendChild ( $name ); $person</span>-><span>appendChild ( $age ); </span><span>//</span><span> $dom->getElementsByTagName('persons')->item(0)->appendChild($newnode) </span><span>//</span><span> 将person做了子节点追加至根节点</span> $dom->documentElement-><span>appendChild ( $person ); </span><span>//</span><span> 将dom中的所有数据重新保存到demo01.xml文件中</span> $dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );
结果:
<person> <name>huangliu</name> <age><span>18</span></age> </person>
8、 删除节点
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode $oldnode:要被删除的节点对象
示例:把以下蓝色部分给删除掉
php
header ( 'Content-Type:text/html;charset=gb2312' );
$dom = new DOMDocument ( '1.0', 'utf-8' );
$dom->load ( 'demo01.xml' );
// 首先找到要删除的节点对象
$person = $dom->getElementsByTagName ( 'person' )->item ( 1 );
// 将节点删除
$dom->documentElement->removeChild ( $person );
// 重新保存文件
$dom->save ( 'demo01.xml' );
9、修改节点
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
DOMNode $newnode :新节点
DOMNode $oldnode :原节点
<?<span>php header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> ); $dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> ); $dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> ); </span><span>//</span><span> 找到要被替换掉的节点</span> $oldNode = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>2</span><span> ); </span><span>//</span><span> 创建出新的节点</span> $person = $dom->createElement ( <span>'</span><span>person</span><span>'</span><span> ); $name </span>= $dom->createElement ( <span>'</span><span>name</span><span>'</span>, <span>'</span><span>songjiang</span><span>'</span><span> ); $age </span>= $dom->createElement ( <span>'</span><span>age</span><span>'</span>, <span>100</span><span> ); $person</span>-><span>appendChild ( $name ); $person</span>-><span>appendChild ( $age ); </span><span>//</span><span> 用新节点替换原节点</span> $dom->documentElement-><span>replaceChild ( $person, $oldNode ); </span><span>//</span><span> 保存文件</span> $dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );
10、 保存
string DOMDocument::saveXML
将dom中的数据保存至一个字符串变量中
int DOMDocument::save ( string $filename )
将dom中的数据保存到指定的文件中
11、关于属性的增删改
1、DOMAttr DOMElement::setAttribute( string $name , string $value )
添加属性
string $name :属性名
string $value :属性值
为person添加id='s102'这个属性
php
header ( 'Content-Type:text/html;charset=gb2312' );
$dom = new DOMDocument ( '1.0', 'utf-8' );
$dom->load ( 'demo01.xml' );
// 为第二个人添加id属性
// 找到第二个人
$person = $dom->getElementsByTagName ( 'person' )->item ( 1 );
// 添加id属性
$person->setAttribute ( 'id', 's102' );
// 保存文件
$dom->save ( 'demo01.xml' );
2、 DOMAttr DOMElement::setAttribute( string $name , string $value )
修改属性
string $name :属性名
string $value :属性值
如果一个节点没有此属性,表示添加属性 (注意与上面的区别)
如果一个节点已经存在这个属性,表示修改属性
3、bool DOMElement::removeAttribute ( string $name )
删除属性(不是删除节点)
$name:要被删除的属性
<?<span>php header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> ); $dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> ); $dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> ); </span><span>//</span><span> 删除第2个人的id属性 </span><span>//</span><span> 找到第二个人</span> $person = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>1</span><span> ); </span><span>//</span><span> 删除id属性</span> $person->removeAttribute(<span>'</span><span>id</span><span>'</span><span>); </span><span>//</span><span> 保存文件</span> $dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );
4、获取属性
string DOMElement::getAttribute ( string $name )
string $name:属性名
<?<span>php header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> ); $dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> ); $dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> ); </span><span>//</span><span> 查询第1个人的id属性 </span><span>//</span><span> 找到第1个人</span> $person = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>0</span><span> ); </span><span>//</span><span> 查询id属性</span> echo $person->getAttribute(<span>'</span><span>id</span><span>'</span>);
12 SimpleXML
PHP DOM:增删改
SimpleXML:查询
一、 读取xml
1、 simpleXMLElement simplexml_load_file ( string $filename)
从某个xml文件中读取数据
string $filename:xml文件名
2、SimpleXMLElement::__construct ( string data)
从某个字符串中读取数据
String data:xml格式的字符串
如果数据保存到文件中,使用simplexml_load_file读取
如果数据保存到字符串中,使用SimpleXMLElement类的构造方法读取

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

PHP8.1中的枚舉功能通過定義命名常量增強了代碼的清晰度和類型安全性。 1)枚舉可以是整數、字符串或對象,提高了代碼可讀性和類型安全性。 2)枚舉基於類,支持面向對象特性,如遍歷和反射。 3)枚舉可用於比較和賦值,確保類型安全。 4)枚舉支持添加方法,實現複雜邏輯。 5)嚴格類型檢查和錯誤處理可避免常見錯誤。 6)枚舉減少魔法值,提升可維護性,但需注意性能優化。

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

使用PHP的cURL庫發送JSON數據在PHP開發中,經常需要與外部API進行交互,其中一種常見的方式是使用cURL庫發送POST�...

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。
