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

PHP 操作 XML 入門:CDATA 區段語法與解析器行為解析

     編輯:PHP 相關知識

PHP 操作 XML 入門:CDATA 區段語法與解析器行為解析

CDATA 範例 XML

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

<class>

<student id="No<001" haha="美女">

<name>小喬</name>

<sex>女</sex>

<age>23</age>

<info>

<![CDATA[

內容部分&*&$#^@*(#))$#*%#

]]></info>

</student>

<student>

<name>周瑜</name>

<sex>男</sex>

<age>26</age>

</student>

</class>

核心知識點

  1. 解析器行為差異:XML 文檔中一般文本會被解析器解析(實體引用展開、標籤識別等),但 **CDATA 區段內容完全跳過解析**,原樣保留。
  2. 適用場景:包含 &、<、>、\"、' 等特殊字符、腳本代碼、JSON 片段、HTML 片段等,無需手動轉義。
  3. 語法界定:<![CDATA[ 開始,**]]> 結束**。區塊內**不得出現 ]]>**,否則會提前結束導致解析錯誤。

對應概念:PCDATA

PCDATA (Parsed Character Data):會被解析器解析的文本。在 DTD 中用於聲明元素內容模型為可解析文本。CDATA 是「不被解析」的補充。

PHP 讀取 CDATA 內容

$xml = simplexml_load_file('demo.xml');

// SimpleXML 直接存取 CDATA 節點內容

echo (string)$xml->student[0]->info; // 輸出:內容部分&*&$#^@*(#))$#*%#

SimpleXML/DOMDocument 均能透明讀取 CDATA 內容,無需特殊處理。

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