DOM Document Object Model
- DOMAttr — 元素屬性類
- DOMCdataSection — The DOMCdataSection class
- DOMCharacterData — 字符資料類umentFragment — The DOMDocumentFragment class
- DOMDocumentType — The DOMDocumentType class
- DOMElement — The DOMElement class
- DOMEntity — The DOMEntity class
- DOMEntityReference — The DOMEntityReference class
- DOMNamedNodeMap — The DOMNamedNodeMap class
- DOMNode — The DOMNode class
- DOMNodeList — The DOMNodeList 類
- DOMNotation — The DOMNotation class
- DOMProcessingInstruction — The DOMProcessingInstruction class
- DOMElement
- dom_import_simplexml (
- SimpleXMLElement
- $node
- ) —
- 從 SimpleXMLElement物件中取得DOM元素
-
預先定義常數
下列常數由此擴充定義,且僅在此擴充功能編譯入 PHP 或在執行時動態載入時可用。
XML 常數常數 值 描述
XML_ELEMENT_NODE(整數) 1 ttr
XML_TEXT_NODE(整數) 3 節點為DOMText
XML_CDATA_SECTION_NODE(整數) 4 XML_CDATA_SECTION_NODE(整數) 4 ) ) 5 節點為DOMEntityReference
XML_ENTITY_NODE(整數) 6 節點
XML_COMMENT_NODE(整數) 8 節點是DOMComment
XML_DOCUMENT_NODE (整數) 9 XML_DOCUMENT_NODE (整數) 9 整數) ) 10 節點是 ) 10 節點為DOMDocumentType
XML_DOCUMENT_FRAG_NODE(整數) 11 節點是一個DOMNotation
XML_HTML_DOCUMENT_ NODE(整數) 13
XML_DTD_NODE(整數)
XML 15
XML_ATTRIBUTE_DECL_NODE(整數) 16
XML_ENTITY_DECL_NODE(整數) 17
XML 整數) 1
XML_ATTRIBUTE_ID(整數) ger) 2
XML_ATTRIBUTE_IDRERE(整數) REFS(整數) 4
XML_ATTRIBUTE_ENTITY(整數) 5
XML_AT TRIBUTE_NMTOKEN (整數) 7
XML_ATTRIBUTE_NMTOKENS (整數) 8
ATTRIBUTE_NOTATION (整數) 10
DOMException 常數常數 值 說明
用於 PHP 錯誤。
DOM_INDEX_SIZE_ERR (整數) 1 若索引或大小為負數,或大於允許的值。
DOMSTRING_SIZE_ERR (整數) 2 若指定的文字範圍不適用於 DOMString。
DOM_HIERARCHY_REQUEST_ERR (整數) 3如果任何節點被插入到不屬於它的位置
DOM_WRONG_DOCUMENT_ERR (整數) 系統
DOM_INVALID_CHARACTER_ERR (整數) 5 如果指定了無效或不合法的字符,例如名稱中。
DOM_NO_DATA_ALLOWED_ERR (整數) 6 如果使用未支援資料的節點指定了資料。
DOM_NO_MODIFICATION_ALLOWED_ERR (整數) 7 如果嘗試修改不允許修改的物件。
DOM_NOT_FOUND_ ERR(整數) 8如果嘗試在沒有的上下文中引用節點。
DOM_NOT_SUPPORTED_ERR(整數) 9 如果已實現不支援請求的物件或作業類型。
DOM_INUSE_ATTRIBUTE_ERR(整數) 10 若嘗試新增已在其他地方使用的屬性。
DOM_INVALID_STATE_ERR (整數) 11 若嘗試使用不可用或已使用的物件。
DOM_SYNTAX_ERR (整數) 12 如果指定了無效或非法的字串。
DOM_INVALID_MODIFICATION_ERR (整數) 13 若嘗試修改底層物件的型別。
DOM_NAMESPACE_ERR(整數) 14 若嘗試以與命名空間相關的不正確的方式建立或變更物件。
DOM_INVALID_ACCESS_ERR(整數) 15 如果參數或操作底層物件不支援。
DOM_VALIDATION_ERR (integer) 16 如果調用insertBefore 或removeChild 等方法會使Node 在「部分有效性」方面無效,則會引發 /* 屬性*/
公用唯讀字串$nodeName ; //傳回目前節點型態最精確的名稱
,取決於其型別
public readonly int $nodeType ; //取得節點的型別。預先定義的 XML_xxx_NODE 常數之一 public readonly DOMNode $parentNode ; //節點的父節點 若沒有子點,
// 這是一個空的 DOMNodeList。
public readonly DOMNode $firstChild ; //此節點的第一子節點。如果沒有這樣的節點,則傳回 NULL。
public readonly DOMNode $lastChild ; //此節點的最後子節點。如果沒有這樣的節點,則傳回 NULL。
public readonly DOMNode $previousSibling ; //緊接在該節點之前的節點。如果沒有這樣的節點,則傳回 NULL。
public readonly DOMNode $nextSibling ; //則已緊接著該節點的節點。如果沒有這樣的節點,則傳回 NULL。
public readonly DOMNamedNodeMap $attributes ; //包含此節點屬性的 DOMNamedNodeMap(如果它是 DOMElement)
//否則為 NULL。
公共唯讀 DOMDocument $ownerDocument ; //與此節點關聯的 DOMDocument 物件。
public readonly string $namespaceURI ; //此節點的命名空間URI,若未指定則為NULL。
public string $prefix ;
public readonly string $localName ; //則已傳回該節點限定名的本地部分。
public readonly string $baseURI ; //此節點的絕對基本 URI,若實作無法實現,則為 NULL
絕對URI。
public readonly string $textContent ; //此屬性傳回該節點及其後代的文字內容物。
/* 方法*/
public DOMNodeappendChild ( DOMNode $newnode ) , array $ns_prefixes ]]] ] ) 將節點規範化為字串
public int C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) OM 將([ bool $deep=False ] ) 複製節點
public int getLineNo ( void ) 取得一個節點的XPath
public bool hasAttributes ( void ) 檢查節點是否具備屬性
public bool hasChildNodes ( void ) 檢查節點是否有子節點
public DOMNode insertBefore ( DOMNode $newnode [, DOM string $namespaceURI ) 以檢查指定的命名空間URI是否為預設命名空間
public bool isSameNode ( DOMNode $node ) 檢視指定版本是否支援此功能
public stringlookupNamespaceURI ( string $prefix ) 根據前綴獲取節點的命名空間URI
public string LookupPrefix ( string $namespaceURI ) 根據命名空間URI 獲取節點的命名空間前綴
public void normalize ( void ) 規範化節點
public DOMNode removeChild ( DOMNode $oldnode ) 從子節點列表中刪除子節點
public DOMNode ReplaceChild ( DOMNode $newnode , DOMNode $oldnode ) 替換子節點
}
DOMNamedNodeMap 實作Tan 地圖中的節點數。有效子節點索引的範圍是 0 到 length - 1(含)。
/* 方法*/
DOMNode getNamedItem ( string $name ) 檢索名稱指定的節點
DOMNode getNamedItemNS ( string $named
DOMNode item ( int $index ) 檢索索引指定的節點
}
DOMNotation extends DOMNode {
/* 屬性*/
readonly public string $publicId ;
readonly public string $system
DOMProcessingInstruction extends DOMNode {
/* 屬性*/
readonly public string 方法*/
public __construct ( string $name [, string $value ] )
}
DOMAttr 表示DOMElement物件屬性.
DOMAttr extends DOMNode {
/* 屬性*/
public readonly string $name ; // public readonly bool $schemaTypeInfo ; //目前未來實作為NULL
public readonly bool $specified ; //目前未來實作為NULL
//屬性值
/* 方法*/
public __construct ( string $name [, string $value ] )
public bool isId ( void )
}
DOMNodeList implements Traversable {
/* 屬性*/
readonly public int $length ; th - 1 inclusive.
/ * 方法*/
DOMNode DOMNodelist::item ( int $index ) Retrieves a node specified by index
}
DOMXPath { /* 方法*/
public __construct ( DOMDocument $ doc )
public mixed evaluate ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] ) E值ion [, DOMNode $contextnode [, bool $registerNodeNS = true ]] ) Evaluates the given XPath expression
public bool registerNamespace ( string $prefix , string $namespaceURI ) PhpFunctions ([ mixed $restrict ] ) Register PHP functions as XPath functions
}
DOMElement 擴充 DOMNode {
/* 屬性*/
readonly public bool $schemaTypeInfo ; 元素名稱
/* 方法*/
public __construct ( string $name [, string $value [, string $namespaceURI ]] ) 建立新的DOMElement 物件
public string getAttribute ( string $name )
public DOMAttr getAttributeNodeNS ( string $namespaceURI , string $localName )
public string 。 Attribute ( string $name )
public bool hasAttributeNS ( string $ namespaceURI , string $localName )
public bool removeAttribute ( string $name )
public bool removeAttributeNode ( DOMAttr$oldnode )
public bool removeAttributeNode ( DOMAttr $oldnode )
化
public DOMAttr setAttribute ( string $name , string $value )
public D。 public void setIdAttribute ( string $name , bool $isId )
public void setIdAttributeNode ( DOMAttr $attr , bool $isId )
public void setIdAttributeNS ( string $namespaceURI , string $localName , bool $isࠎ沒有節點直接對應於該類,但其他節點繼承自該類。
DOM?
readonly public int $length ; 內容的長度。
/* 方法*/
void appendData ( string $data ) 將字串追加到節點的字元資料末端
void insertData ( int $offset , string $data ) 在指定的16 位元單位偏移處插入字串
void ReplaceData ( int $offset , int $count , string $data ) $count ) 從節點擷取一定範圍的資料
}
DOMText DOMText 類別繼承自DOMCharacterData,表示DOMElement 或DOMAttr 的文字內容。
DOMText 擴充 DOMCharacterData {
/* 屬性 * /
唯讀公有字串 $wholeText ; 儲存邏輯上相鄰的(不使用元素、註解或處理指令分隔)文字節點的所有文字。
/* 方法*/
public __construct ([ string $value ] ) 建立一個新的文字
public DOMText splitText ( int $offset ) 將此節點按指定偏移分成兩個節點
}
DOMCdataSection DOMCdataSection 繼承自DOMText,用於CData 建構的文字表示。
DOMCdataSection 擴充 DOMText {
/ * 方法 */
public __construct ( string $value )
}
DOMComment 表示註解節點,字元以 分隔。
DOMComment extends DOMCharacterData {
/* method */
public __construct ([ string $value ] )
}
DOMDocument類型
DOMDocumentType extends DOMNode {
/* 屬性 */
readonly public string $publicId ; 外部子集的公共識別碼。
readonly public string $systemId ; 外部子集的系統識別碼。這可能是絕對 URI,也可能不是。
readonly public string $name ; DTD 的名稱;即緊接在 DOCTYPE 關鍵字後面的名稱。
readonly public DOMNamedNodeMap $entities ; 包含 DTD 中宣告的一般實體(外部和內部)的 DOMNamedNodeMap。
readonly public DOMNamedNodeMap $notations ; 包含 DTD 中宣告的符號的 DOMNamedNodeMap。
只讀公有字串 $internalSubset ; 內部子集為字串,若沒有則為 null。它不包含分隔方括號。
}
DOMDocumentFragment 擴充 DOMNode {
public bool appendXML ( string $data ) 附加原始 XML 資料
}
DOMEntity 附加原始 XML 資料
}
DOMEntity
DOMEntity 擴充 DOMNode {
/* 屬性 */
唯讀公有字串 $publicId ; 實體相關的公用識別碼(若指定),否則為 NULL。
readonly public string $systemId ; 若指定,則實體關聯的系統識別符,否則為 NULL。這可能是絕對 URI,也可能不是。
只讀公有字串 $notationName ; 未解析的實體,實體的表示法名稱。對於已解析的實體,這是 NULL。
public string $actualEncoding ; 當該實體是外部已解析實體時,並指定在解析時用於該實體的編碼的屬性。如果它是來自內部子集的實體或未知,則為 NULL。
readonly public string $encoding ; 當實體是外部解析實體時,並作為文字宣告的一部分指定該實體的編碼的屬性。否則為 NULL。
readonly public string $version ; 當實體為外部解析實體時,並指定為實體的版本編號作為文字宣告的屬性。否則為 NULL。
}
DOMEntityReference 擴充 DOMNode {🎜 public __construct ( string $name )🎜}
Exception {
/* 屬性*/
protected string $message ; 例外訊息內容
protectedint $ 拋出例外的檔案名稱
protected int $line ; 以該文件中的行號
/* 方法*/
public __construct ([ string $message = "" [, int $code = 0 [, Exception $previous = NULL ]]] )
final public string getMessage ( void ) 獲取異常消息內容
final public Exception getPrevious ( void ) 返回異常鏈中的前一個異常
final public int getCode ( void ) ( void ) 取得異常發生的程式檔案名稱
final public int getLine ( void ) 有異常的程式碼在檔案中的行號
final public array getTrace ( void 取得字串型態的異常追蹤資訊
public string __toString ( void ) 將例外物件轉換為字串
final private void __clone ( void ) 異常克隆
}
DOMException for logical reasons.
DOMException extends Exception {
/* 屬性*/
readonly public int $code ; An integer indicating the type of error generated
}
DOMImplementation The DOMImplementation interfacem) a number of method per performing for performat) ect model.
DOMImplementation {
/* 方法*/
__construct ( void )
public DOMDocument createDocument ([ string $namespaceURI = NULL [, string $qualified錯誤document element
public DOMDocumentType createDocumentType ([ string $qualifiedName = NULL [, string $publicId = NULL [, string $systemId = NULL ]]] ) ) Test if the DOM implementation implements a specific feature
}
DOMDocument 擴充 DOMNode {
/* 屬性 */
只讀公用字串 $actualEncoding ; 則已棄用。文件的實際編碼,是相當於編碼的唯讀。
readonly public DOMConfiguration $config ; 已棄用。呼叫 DOMDocument::normalizeDocument() 時所使用的配置。
readonly public DOMDocumentType $doctype ; 與此文件關聯的文件類型聲明。
readonly public DOMElement $documentElement ; 這是一個方便的屬性,允許直接存取作為文件的文檔元素的子節點。
public string $documentURI ; 文檔的位置,而未定義則為 NULL。
public string $encoding ; 文件的編碼,並以 XML 聲明指定。此屬性並未出現在最終的 DOM Level 3 規格中,但卻是唯一在此實作中操作 XML 文件編碼的方法。
public bool $formatOutput ; 透過縮排和額外空格來充分格式化輸出。
readonly public DOMImplementation $implementation ; 處理此文件的 DOMImplementation 物件。
public bool $preserveWhiteSpace = true ; 請勿刪除多餘的空白。預設為 TRUE。
public bool $recover ; 所有權。啟用復原模式,即嘗試解析格式不正確的文件。該屬性不是 DOM 規範的一部分,而是特定於 libxml 的。
public bool $resolveExternals ; 將其設為 TRUE 以從文件類型宣告載入外部實體。這對於在 XML 文件中包含字元實體非常有用。
public bool $standalone ; 已被使用。文件是否獨立(由 XML 宣告指定)對應於 xmlStandalone.
public bool $strictErrorChecking = true ; 錯誤時拋出 DOMException。預設為 TRUE。
public bool $substituteEntities ; 擁有。是否替換實體。該屬性不是 DOM 規範的一部分,而是特定於 libxml 的。
public bool $validateOnParse = false ; 載入並依 DTD 驗證。預設為 FALSE。
公有字串 $version ; 則已被使用。 XML 的版本,對應 xmlVersion.
readonly public string $xmlEncoding ; 作為 XML 宣告的一部分,並指定此文件的編碼的屬性。當未指定或未知時(例如當 Document 在記憶體中建立時),此值為 NULL。
public bool $xmlStandalone ; 為 XML 宣告的一部分,指定此文件是否獨立的屬性。未指定時為 FALSE。
public string $xmlVersion ; 作為 XML 宣告的一部分,並指定此文件的版本號碼的屬性。如果沒有聲明,且本文檔支援「XML」功能,則值為「1.0」。
/* 方法*/
public __construct ([ string $version [, string $encoding ]] )
我 string $namespaceURI , string $qualifiedName ) 建立具有關聯命名空間的新屬性節點
public DOMCDATASection createCDATASection ( string $data )
public DOMComment createComment ( string $data )
. ing $name [, string $value ] )
public DOMElement createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] )
public DOMEntityReference createEntityReference ( string $name )
public DOMProcessingInstruction createProcessingInstruction ( string $target [, string $data ] )
elementId ) 搜尋具有特定id 的元素
public DOMNodeList getElementsByTagName ( string $name ) 搜尋所有給定本地標籤名稱的所有元素
public DOMNodeList getElementsByTagNameNS OMNode importNode ( DOMNode $ importedNode [ , bool $deep ] ) 將節點匯入目前文件
public mix load ( string $filename [, int $options = 0 ] ) $options = 0 ] )從字串載入HTML
public bool loadHTMLFile ( string $filename [, int $options = 0 ] ) 從檔案中載入HTML
public mix loadXML (string $. XML
public void normalizeDocument ( void ) 的擴充類別
public boolrelaxNGValidate ( string $filename ) 執行string $source ) 地([ DOMNode $node = NULL ] ) 轉儲使用HTML格式將內部文件轉儲至字串中
public int saveHTMLFile ( string $filename ) 使用HTML 格式將內部文件轉儲至檔案中
) $ 將內部XML樹轉儲回來轉換為字串
public bool schemaValidate ( string $filename [, int $flags ] ) 基於schema 驗證文件
public public bool validate ( void ) 地<?php $url = 'http://movie.douban.com/category/' ; function getPage($url) { $curl = curl_init(); $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; $header[] = "Cache-Control: max-age=0"; $header[] = "Connection: keep-alive"; $header[] = "Keep-Alive: 300"; $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; $header[] = "Accept-Language: en-us,en;q=0.5"; $header[] = "Pragma: "; // browsers keep this blank. curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)'); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_REFERER, 'http://www.baidu.com'); curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); curl_setopt($curl, CURLOPT_AUTOREFERER, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 10); $html = curl_exec($curl); curl_close($curl); return $html; } $text = getPage($url); $xml = new DOMDocument(); $xml->loadHTMLFile("test.html"); $xml->encoding='UTF-8'; $xpath=new DOMXpath($xml); $elements = $xpath->query("/html/body//div[@id='type']/ul"); var_dump($elements); foreach ( $elements as $e){ foreach ($e->childNodes as $es){ var_dump($es->nodeValue); } } ?>
以上就介紹了php DOM解析,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。

在PHP中,trait適用於需要方法復用但不適合使用繼承的情況。 1)trait允許在類中復用方法,避免多重繼承複雜性。 2)使用trait時需注意方法衝突,可通過insteadof和as關鍵字解決。 3)應避免過度使用trait,保持其單一職責,以優化性能和提高代碼可維護性。

依賴注入容器(DIC)是一種管理和提供對象依賴關係的工具,用於PHP項目中。 DIC的主要好處包括:1.解耦,使組件獨立,代碼易維護和測試;2.靈活性,易替換或修改依賴關係;3.可測試性,方便注入mock對象進行單元測試。

SplFixedArray在PHP中是一種固定大小的數組,適用於需要高性能和低內存使用量的場景。 1)它在創建時需指定大小,避免動態調整帶來的開銷。 2)基於C語言數組,直接操作內存,訪問速度快。 3)適合大規模數據處理和內存敏感環境,但需謹慎使用,因其大小固定。

PHP通過$\_FILES變量處理文件上傳,確保安全性的方法包括:1.檢查上傳錯誤,2.驗證文件類型和大小,3.防止文件覆蓋,4.移動文件到永久存儲位置。

JavaScript中處理空值可以使用NullCoalescingOperator(??)和NullCoalescingAssignmentOperator(??=)。 1.??返回第一個非null或非undefined的操作數。 2.??=將變量賦值為右操作數的值,但前提是該變量為null或undefined。這些操作符簡化了代碼邏輯,提高了可讀性和性能。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

WebStorm Mac版
好用的JavaScript開發工具