DOMXML函數筆記_PHP教程
/**
* DOMXML函數筆記
* 連接php_domxml.dll後
* 用get_defined_functions()得到domxml支援函數
*
* 目前domxml不支援非iso-8859-1以外的語言宣告
* 支援
* 不支援
* 因此需要改造成這樣,可能需要
* utf8_encode() utf8_decode() 函數進行處理
*
* 函數列表
* string domxml_version(🎜>* 函數列表
* string domxml_version(🎜> . domxml的版本號碼
* object xmldoc(string str) 從字串建立XML的Domdocument物件
* object xmldocfile(string filename) xml文檔,返回樹狀結構,不能用domxml函數改變
* resource domxml_add_root(resource doc,string name) 添加根節點
* string domxml_dumpmem(resource doc) 將domxml物件轉換為XMLML。這個函數有一個問題,他會在第一個漢字前面加上一個擴展ascii字符,形如nnn;
* domxml_node_attributes
* domxml_elem_get_attribute
* domxml_elem_set_attribchild ==no_obect*_objnm_set_attrib |node) 回傳子節點
* domxml_node_new_child
* object domxml_node(string name) 建立一個節點節點
* domxml_node_unlink_node
* xpath_new_context
* xpath_eval
* xpath_eval_expression
* xptr_ptr_obptr_ob_object 返回根節點
* array domxml_attributes(resource note) 取得節點屬性
* object domxml_get_attribute(resource doc,string name) 讀取屬性
* domxml_getattr
* array domxml_children(object doc|node) 回傳子節點
* resource domxml_new_child(string name,string content) >* new_xmldoc
*
*/
?><br><?php <br>// 文檔xml來源樹.xml 內容<br>$testxml = ' <br><?xml version="1.0" encoding="GB2312"?> <br><root><br><note>讀取xml文件時,處理器將形成一個樹,我們稱之為來源樹。該樹具有表中的各種類型的節點。 <br></note><br><title>源樹具有的節點</title>
<br><table>
<br><tr>
<th>節點型別</th>
<th>說明</th>
</tr>
<br><tr>
<td>Root(根)</td>
<td>這是樹的根節點。可以出現在樹的任何地方。根節點只具有一個子節點,子節點指的是xml文檔中的文檔元素節點。 </td>
</tr>
<br><tr>
<td>Element(元素)</td>
<td>這種節點用於文件中的任何元素。元素節點的子節點可以是其內容的元素節點、註解節點、處理資訊節點、文字節點。 </td>
</tr>
<br><tr>
<td>Text(文本)</td>
<td>文件中出現的所有文本,都分組歸入到文本節點中。文字節點不可以有同為文本節點的緊接著的前後的兄弟節點。 </td>
</tr>
<br><tr>
<td>Attribute(屬性)</td>
<td>每個元素節點都有一套自己附加的屬性節點。預設的屬性值以與指定屬性一樣的方法來處理。這些節點都沒有子節點。 </td>
</tr>
<br><tr>
<td>Namespace(name)</td>
<td>對於每一個以xlmns:和屬性節點開頭的元素,都有一個名稱空格節點。這些節點沒有子節點。 </td>
</tr>
<br><tr>
<td>Processing Instruction(處理指令)</td>
<td>每一個處理指令都有一個單獨的節點。這些節點都沒有子節點。 </td>
</tr>
<br><tr>
<td>Comment(註)</td>
<td>每一個都有一個註解節點。這些節點都沒有子節點。</td>
</tr>
<br>
</table>
<br></root><br>';<br><br>echo "domxml版本:".domxml_version();<br>echo "
// xmltree domxml_dumpmem
$filename = "xml來源樹.xml";
//$filename = "resume.xml";
$fp = fopen ($filename,"r");
$inXML = fread($fp,filesize($filename));
fclose($fp);
// 刪除語言設定
// $inXML = str_replace(' encoding="GB2312"',"",$inXML);
$inXML = eregi_replace(' encoding="[a-z0-9_-] "',"",$inXML);
$doc = xmltree($inXML); // 使用xmltree解析
$myxml = $doc->dumpmem(); // 轉換成字串,頭為 xml version="1.0"
為] ;'," ",$myxml); // 刪除
echo "用xmltree解析
";
echo "
";
//print_r($doc); // 可以看到整個樹亦可用var_dump($doc);
// xmldoc
$doc = xmldoc($inXML);
$myxml = $doc->dumpmem();
echo "用xmldoc解析
";
echo "
";
/ /print_r($doc); // 只能看到根節點
// domxml_new_xmldoc
$doc = domxml_new_xmldoc("1.0");
$root = $doc-> add_root("HTML");
$head = $root->new_child("HEAD", "");
$head->new_child("TITLE", "DOMXML 測試0");
$head->new_child("TITLE", "DOMXML 測試1");
$head->set_attribute("Language", "ge");
domxml_node_set_content($head,"ppp"); //設定節點的內容,多次執行是疊加的
domxml_node_set_content($head,"ttt");
// 是乎函數名稱中只有1-2個"_"的函數,可作為物件的方法使用
$myxml = $doc->dumpmem();
echo "自訂xml
";
echo "
";
// 節點的遍歷
/**
節點結構
DomElement Object
type = 1
tagname = 節點名稱
DomText Object type = 4
content = 節內容點
DomProcessingInstruction Object
type 無
*/
$ar[] = $doc->root(); // 取得根節點
$ar[] = $ar[count($ar)-1]->children();
$ar[] = $ar[count($ar)-1][0]- >children();
// 函數domxml_children() 不能傳回節點參數
// 傳回節點參數需要使用domxml_attributes()
//var_dump(domxml_attributes($head));
//var_dump(domxml_attributes($head));
//print_r($ar[1][0]->attributes());
//print_r($ar);
function xml_dumpmem($xmldoc) {
= 0;
$xmlstr = "";
// 取得節點,儲存於陣列中
if(get_class($xmldoc) == "DomDocument") {
xml version="1.0" encoding="gb2312"?>'."n";
if(count($xmldoc->children) == 1) // ] = $xmldoc->root();
else
$docs = $xml->children(); // 根節點,有其他成員
doc } ->children(); // 一般節點
}
// echo __LINE__."
";
foreach($doc as $doc) {
doc->attributes();
switch($doc->type) {
case 1:
if($attr) {
foreach($attr as $key)
$p. .= " > }
$xmlstr .= ">"; // 標籤結束
$xmlstr .= xml_dumpmem($); ->tagname} >"; // 閉合標籤
break;
case 3:
> case 4:
$xmlstr .= " $xmlstr .= $doc->content;
$xml 🎜> if(get_class ($doc) == "DomProcessingInstruction") {
$xmlstr .= "{$doc->target}";
}
break;
}
$filename = "resume.xml" ;
// $filename = "resume.xsl";
$filename = "xml來源樹.xml";
$fp = fopen($filename,"r");
$fp = fopen($filename,"r");
$fp = fopen($filename,"r");
$inXML = fread($fp,filesize($filename));
fclose($fp);
$inXML = eregi_replace(' encoding="[a-z0-9_-] "',"",$inXML );
// $doc = xmltree($inXML); // 利用xmltree解析
$doc = xmldoc($inXML); // 利用xml為
}
>
$myxml = xml_dumpmem($doc);
echo "自己寫一個dumpmem就不出錯了
";
echo "
";
print_r($doc);
?>
http://www.bkjia.com/PHPjc/313922.html
www.bkjia.com
true
http: //www.bkjia.com/PHPjc/313922.html
TechArticle

熱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)

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

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

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。
