日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

XML中的CDATA是什么

發布時間:2025/3/20 asp.net 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XML中的CDATA是什么 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

XML 解析器通常情況下會處理XML文檔中的所有文本。

當XML元素被解析的時候,XML元素內部的文本也會被解析:

?

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><message>This?text?is?also?parsed</message>

?

?

XML解析器這樣做的原因是XML元素內部可能還包含了別的元素,象下面的例子,name元素內部包含了first和last兩個元素:

?

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><name><first>Bill</first><last>Gates</last></name>

?

?

解析器會認為上面的代碼是這樣的:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><name>
??<first>Bill</first>
??<last>Gates</last>
</name>

?

?


轉義字符

不合法的XML字符必須被替換為相應的實體。

如果在XML文檔中使用類似"<" 的字符, 那么解析器將會出現錯誤,因為解析器會認為這是一個新元素的開始。所以不應該象下面那樣書寫代碼:

?

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><message>if?salary?<?1000?then</message>

?

?

為了避免出現這種情況,必須將字符"<" 轉換成實體,象下面:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><message>if?salary?&lt;?1000?then</message>

?

?

下面是五個在XML文檔中預定義好的實體:

&lt;<小于號
&gt;>大于號
&amp;&
&apos;'單引號
&quot;"雙引號


實體必須以符號"&"開頭,以符號";"結尾。

注意: 只有"<" 字符和"&"字符對于XML來說是嚴格禁止使用的。剩下的都是合法的,為了減少出錯,使用實體是一個好習慣。


CDATA部件

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

如果文本包含了很多的"<"字符和"&"字符——就象程序代碼一樣,那么最好把他們都放到CDATA部件中。

一個 CDATA 部件以"<![CDATA[" 標記開始,以"]]>"標記結束:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><script>
<![CDATA[
function
?matchwo(a,b)
{
if?(a?<?b?&&?a?<?0
)?then
{
return?1

}
else
{
return?0
}
}
]]
>
</script>

?

在前面的例子中,所有在CDATA部件之間的文本都會被解析器忽略。

CDATA注意事項:

1.CDATA部件之間不能再包含CDATA部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"<![CDATA[" ,將很有可能出錯哦。

2.同樣要注意在字符串"]]>"之間沒有空格或者換行符。

PCDATA和CDATA的區別究竟是什么呢?
=============================================
PCDATA表示已解析的字符數據。
?? CDATA是不通過解析器進行解析的文本,文本中的標簽不被看作標記。
?? CDATA表示里面是什么數據XML不會解析.比如可能是下面的一段
?? <![CDATA[?
?????? if(a>b){
????????? System.out.println(a);
???? }

???? ]]>

??? 注意上面的一個">"符號.


??? PCDATA的數據是要給XML解析器去解析的,那上面的>去解析肯定會出錯了,所以要用實體定義.上面的數據如果用PCDATA表示如下:

????? if(a&gt;b){
???????? System.out.println(a);
????? }


????
???? cdata是在XML文檔里面使用的關鍵字,用來告訴瀏覽器,這部分內容不用解析,是給其他程序用的,比如JAVASCRIPT等等,#PCDATA是在 XML約束文檔里使用的,如DTD類型的約束文檔,在這里面表示元素的內容或屬性的取值范圍等等,是字符串形式的。

轉載于:https://blog.51cto.com/hexen/764824

總結

以上是生活随笔為你收集整理的XML中的CDATA是什么的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。