﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-网站开发-随笔分类-xml</title><link>http://www.blogjava.net/ljy032/category/22122.html</link><description>asp.net</description><language>zh-cn</language><lastBuildDate>Sun, 29 Apr 2007 14:16:35 GMT</lastBuildDate><pubDate>Sun, 29 Apr 2007 14:16:35 GMT</pubDate><ttl>60</ttl><item><title>怎样向xml文档插入HTML标记</title><link>http://www.blogjava.net/ljy032/archive/2007/04/29/114624.html</link><dc:creator>风雨兼程</dc:creator><author>风雨兼程</author><pubDate>Sun, 29 Apr 2007 09:42:00 GMT</pubDate><guid>http://www.blogjava.net/ljy032/archive/2007/04/29/114624.html</guid><wfw:comment>http://www.blogjava.net/ljy032/comments/114624.html</wfw:comment><comments>http://www.blogjava.net/ljy032/archive/2007/04/29/114624.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ljy032/comments/commentRss/114624.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ljy032/services/trackbacks/114624.html</trackback:ping><description><![CDATA[<span class=style2>CDATA 区段</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 因为网页中要显示<span lang=EN-US XML:LANG="EN-US">HTML</span>的源代码。而在<span lang=EN-US XML:LANG="EN-US">XML</span>中，要实现这样的功能，就必须使用<span lang=EN-US style="COLOR: red" XML:LANG="EN-US">CDATA</span>标记。在<span lang=EN-US XML:LANG="EN-US">CDATA</span>标记中的信息被解析器原封不动地传给应用程序，并且不解析该段信息中的任何控制标记。<span lang=EN-US XML:LANG="EN-US">CDATA</span>区域是由：<span lang=EN-US XML:LANG="EN-US">&#8220;</span>〈<span lang=EN-US XML:LANG="EN-US">![CDATA[&#8221;</span>为开始标记，以<span lang=EN-US XML:LANG="EN-US">&#8220;]]</span>〉<span lang=EN-US XML:LANG="EN-US">&#8221;</span>为结束标记。例如：例<span lang=EN-US XML:LANG="EN-US">2</span>中的源码，除了<span lang=EN-US XML:LANG="EN-US">&#8220;</span>〈<span lang=EN-US XML:LANG="EN-US">![CDATA[&#8221;</span>和<span lang=EN-US XML:LANG="EN-US">&#8220;]]</span>〉<span lang=EN-US XML:LANG="EN-US">&#8221;</span>符号，其余的内容解析器将原封不动地交给下游的应用程序，即使<span lang=EN-US XML:LANG="EN-US">CDATA</span>区域中的开始和结尾的空白以及换行字符等，都同样会被转交（注意<span lang=EN-US XML:LANG="EN-US">CDATA</span>是大写的字符）。&nbsp;<span lang=EN-US XML:LANG="EN-US"><font face=宋体><br></font></span><br>&nbsp;&nbsp;&nbsp;&nbsp;如同你在第三章中学到的，你不能直接将（&lt;）或（&amp;）符号放置在元素内容中的字符数据里。要避开这个限制的一种方法是使用字符参照（&amp; #60;或&amp; #38;）或预先定义的普通实体参照（&amp; lt;或&amp; amp;），如同你在第六章中将学到的。然而，如果你需要加入多个（&lt;）或（&amp;）字符，使用这些参照将变得不合适且会让资料变得难以阅读。在这种情况下，将包含限制字符的文字放置在CDATA 区段中将会比较容易完成工作。<br>&nbsp;&nbsp;&nbsp;&nbsp;CDATA 区段的类型<br>&nbsp;&nbsp;&nbsp;&nbsp;CDATA 区段以字符「&lt;![CDATA[」开始，并以「]]&gt;」字符结束。在这两个定义符号之间，你可以输入任何字符（包括「&lt;」或「&amp;」），除了「]]&gt;」之外。（因为，该字符会被解释成CDATA区段的结束。）所有位在CDATA 区段中的字符都被视为元素字符数据的字义 (literal) 部分，而不是XML 标签。<br>&nbsp;&nbsp;&nbsp;&nbsp;下面是一个合法CDATA 区段的范例：<br>&lt;![CDATA [<br>Here you can type any characters except two right brackets followed<br>by a greater-than symbol.<br>]]&gt;<br>注意<br>&nbsp;&nbsp;&nbsp;&nbsp;关键词CDATA，就像其它你所见到的XML 关键词，必须以大写字母撰写。<br>&nbsp;&nbsp;&nbsp;&nbsp;如果你想包含一段原始码或标签当作被显示在浏览器中元素的真实字符数据的一部份，你可以使用CDATA 区段来防止XML 解析器将「&lt;」或「&amp;」字符解释成XML 卷标。下面就是一个范例：<br>&lt;A-SECTION&gt;<br>The following is an example of a very simple HTML page:<br>&lt;![CDATA[<br>&lt;HTML&gt;<br>&lt;HEAD&gt;<br>&lt;T99vLE&gt;R.Jones &amp;Sons&lt;/T99vLE&gt;<br>&lt;/HEAD&gt;<br>&lt;BODY&gt;<br>&lt;P&gt;Welcome to our home page!&lt;/P&gt;<br>&lt;/BODY&gt;<br>&lt;/HTML&gt;<br>]]&gt;<br>&lt;/A-SECTION&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;例如，若没有CDATA 区段，处理器会假设&lt;HTML&gt;是套迭的元素的起始部分，而不是A-SECTION 元素的字符数据的起始部分。<br>注意<br>&nbsp;&nbsp;&nbsp;&nbsp;既然你可以直接将「&lt;」与「&amp;」字符加入CDATA 区段中，你就不必使用字符参照（&amp; #60;与&#38;）或预先定义的普通实体参照（&amp; lt;与&amp; amp;），笔者将在第六章中解释字符参照与实体参照。事实上，如果你使用这类的参照，解析器会将参照中的每个字符照字面解释，且不会更换掉含有「&lt;」或「&amp;」字符的参照。<br>&nbsp;&nbsp;&nbsp;&nbsp;你可以放置CDATA 区段的地方<br>&nbsp;&nbsp;&nbsp;&nbsp;你可以将CDATA 区段放置在字符数据可以出现的任何地方－也就是说，在元素的内容中却不在XML 标签中。下面是一个合法放置CDATA 区段的范例<br>&lt;?xml version="1.0"?&gt;<br>&lt;MUSICAL&gt;<br>&lt;T99vLE_PAGE&gt;</span>
<p>&#160;</p>
<p><span class=f141><span class=f141>&lt;![CDATA[<br>&lt;Oklahoma!&gt;<br>By<br>Rogers &amp;Hammerstein<br>]]&gt;<br>&lt;/T99vLE_PAGE&gt;<br>&lt;!--Other elements here...--&gt;<br>&lt;/MUSICAL&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;显示于下页的错误型式XML 文件包含了两个违法的CDATA 区段。第一个不是在元素的内容中。第二个则是位在文件元素的内容之中，但却不是在起始标签中。<br>&lt;?xml version="1.0"?&gt;<br>&lt;![CDATA[ ILLEGAL::not within element content!]]&gt;<br>&lt;DOC_ELEMENT&gt;<br>&lt;SUB_ELEMENT &lt;![CDATA[ ILLEGAL::inside of markup!]]&gt;&gt;<br>sub-element content...<br>&lt;/SUB_ELEMENT&gt;<br>&lt;/DOC_ELEMENT&gt;<br>注意<br>&nbsp;&nbsp;&nbsp;&nbsp;CDATA 区段不能成巢状套迭。亦即，你不能将一个CDATA 区段放到另一个区段中。</span></span></p>
<img src ="http://www.blogjava.net/ljy032/aggbug/114624.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ljy032/" target="_blank">风雨兼程</a> 2007-04-29 17:42 <a href="http://www.blogjava.net/ljy032/archive/2007/04/29/114624.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>