<![CDATA[文本內容]]>

来源:http://www.cnblogs.com/zhxn/archive/2017/05/26/6909262.html
-Advertisement-
Play Games

所有 XML 文檔中的文本均會被解析器解析。 只有 CDATA 區段(CDATA section)中的文本會被解析器忽略。 PCDATA PCDATA 指的是被解析的字元數據(Parsed Character Data)。 XML 解析器通常會解析 XML 文檔中所有的文本。 當某個 XML 元素被 ...


所有 XML 文檔中的文本均會被解析器解析。

只有 CDATA 區段(CDATA section)中的文本會被解析器忽略。

PCDATA

PCDATA 指的是被解析的字元數據(Parsed Character Data)。

XML 解析器通常會解析 XML 文檔中所有的文本。

當某個 XML 元素被解析時,其標簽之間的文本也會被解析:

<message>此文本也會被解析</message>

解析器之所以這麼做是因為 XML 元素可包含其他元素,就像這個例子中,其中的 <name> 元素包含著另外的兩個元素(first 和 last):

<name><first>Bill</first><last>Gates</last></name>

而解析器會把它分解為像這樣的子元素:

<name>
   <first>Bill</first>
   <last>Gates</last>
</name>

轉義字元

非法的 XML 字元必須被替換為實體引用(entity reference)。

假如您在 XML 文檔中放置了一個類似 "<" 字元,那麼這個文檔會產生一個錯誤,這是因為解析器會把它解釋為新元素的開始。因此你不能這樣寫:

<message>if salary < 1000 then</message>

為了避免此類錯誤,需要把字元 "<" 替換為實體引用,就像這樣:

<message>if salary &lt; 1000 then</message>

在 XML 中有 5 個預定義的實體引用:

&lt; < 小於
&gt; > 大於
&amp; & 和號
&apos; ' 省略號
&quot; " 引號

註釋:嚴格地講,在 XML 中僅有字元 "<"和"&" 是非法的。省略號、引號和大於號是合法的,但是把它們替換為實體引用是個好的習慣。

CDATA

術語 CDATA 指的是不應由 XML 解析器進行解析的文本數據(Unparsed Character Data)。

在 XML 元素中,"<" 和 "&" 是非法的。

"<" 會產生錯誤,因為解析器會把該字元解釋為新元素的開始。

"&" 也會產生錯誤,因為解析器會把該字元解釋為字元實體的開始。

某些文本,比如 JavaScript 代碼,包含大量 "<" 或 "&" 字元。為了避免錯誤,可以將腳本代碼定義為 CDATA。

CDATA 部分中的所有內容都會被解析器忽略。

CDATA 部分由 "<![CDATA[" 開始,由 "]]>" 結束:

<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
  {
  return 1;
  }
else
  {
  return 0;
  }
}
]]>
</script>

在上面的例子中,解析器會忽略 CDATA 部分中的所有內容。

關於 CDATA 部分的註釋:

CDATA 部分不能包含字元串 "]]>"。也不允許嵌套的 CDATA 部分。

標記 CDATA 部分結尾的 "]]>" 不能包含空格或折行。

本篇為轉載,原文http://www.w3school.com.cn/xml/xml_cdata.asp


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • java存儲: 1)寄存器:這是最快的存儲區,位於處理器的內部。但是寄存器的數量有限,所以寄存器根據需求進行分配。我們不能直接進行操作。 2)堆棧:位於通用RAM中,可以通過堆棧指針從處理器那裡獲取直接支持。堆棧指針往下移動,則分配新的記憶體。網上移動,則釋放記憶體。但是 在創建程式的時候必須知道存儲在 ...
  • w3c 中的定義:鏈接 <a>http://www.w3school.com.cn/jquery/event_change.asp<a> jQuery 事件 - change() 方法 定義和用法 當元素的值發生改變時,會發生 change 事件。 該事件僅適用於文本域(text field),以及 ...
  • Python進階 對象,名字以及綁定 1、一切皆對象 哲學: Python中一切皆對象 1.1 數據模型 對象,值以及類型 對象是 對數據的抽象。 程式中所有的數據都是對象或對象之間的關係表示的。(在某種意義上,為順應馮·諾依曼“存儲式電腦”的模型, 中的代碼也是對象。) 中每一個對象都有一個身份 ...
  • 1 2 3 4 5 ...
  • 1.get與post的區別 Get和Post方法都是對伺服器的請求方式,只是他們傳輸表單的方式不一樣。 下麵我們就以傳輸一個表單的數據為例,來分析get與Post的區別 1.1 get方法 jsp中的代碼form表單代碼 1.2 action包中servlet的doGet方法中的代碼 註意:acti ...
  • 一、任務和執行策略之間的隱性耦合 Executor可以將任務的提交和任務的執行策略解耦 只有任務是同類型的且執行時間差別不大,才能發揮最大性能,否則,如將一些耗時長的任務和耗時短的任務放在一個線程池,除非線程池很大,否則會造成死鎖等問題 1.線程饑餓死鎖 類似於:將兩個任務提交給一個單線程池,且兩個 ...
  • 進程與線程 進程:是操作系統結構的基礎;是一個正在執行的程式;電腦中正在運行的程式實例;可以分配給處理器並由處理器執行的一個實體;由單一順序的執行顯示,一個當前狀態和一組相關的系統資源所描述的活動單元。 進程的概念主要有兩點: 第一,進程是一個實體。每一個進程都有它自己的地址空間,一般情況下,包括 ...
  • Map<String,String> a = new HashMap<String,String>(); 然後把值put進去的時候,值不是按照put的順序排序。 Map<String,String> a = new LinkedHashMap<String,String>(); 然後把值put進去, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...