首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 生成 XML 時正確添加 CDATA 區塊:DOMDocument 實戰

     編輯:PHP 相關知識

XML 中包含特殊字符(如 <, >, &)或需保留原始格式的文本時,必須使用 CDATA 區塊。本文演示如何用 DOMDocument 正確創建並插入 CDATA 節點。

完整示例代碼

<?php
$dom = new DOMDocument("1.0");
header("Content-Type: text/plain"); // 便於瀏覽器查看源碼

// 創建根元素
$root = $dom->createElement("toppings");
$dom->appendChild($root);

// 普通子元素與屬性
$item = $dom->createElement("item");
$root->appendChild($item);
$text = $dom->createTextNode("pepperoni");
$item->appendChild($text);
$price = $dom->createAttribute("price");
$item->appendChild($price);
$priceValue = $dom->createTextNode("4");
$price->appendChild($priceValue);

// 關鍵:創建 CDATA 區塊
$cdata = $dom->createCDATASection(" Customer requests that pizza be sliced into 16 square pieces ");
$root->appendChild($cdata);

// 處理指令
$pi = $dom->createProcessingInstruction("pizza", "bake()");
$root->appendChild($pi);

echo $dom->saveXML();
?>

輸出結果片段

<toppings>
  <item price="4">pepperoni</item>
  <![CDATA[ Customer requests that pizza be sliced into 16 square pieces ]]>
  <?pizza bake()?>
</toppings>

關鍵點總結

  • 不要手工拼接字符串:<![CDATA[ ... ]]> 作為文本節點插入會被轉義,必須用 createCDATASection()。
  • CDATA 可包含任意字符:包括標簽、實體引用、換行等,解析器將其視為純文本。
  • 編碼一致性:確保文檔聲明編碼(如 UTF-8)與實際內容一致。

常見誤區

誤以為 createTextNode 可直接放入 CDATA 內容 —— 它會將 < 轉為 &lt;,破壞原始數據。

掌握 DOMDocument 的 CDATA 操作,讓 XML 生成既標準又靈活。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved