02-XML高级
XML
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- Edited with XML Spy v2007 (http://www.altova.com) --> <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> <CD> <TITLE>Hide your heart</TITLE> <ARTIST>Bonnie Tyler</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>CBS Records</COMPANY> <PRICE>9.90</PRICE> <YEAR>1988</YEAR> </CD> <CD> <TITLE>Greatest Hits</TITLE> <ARTIST>Dolly Parton</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>RCA</COMPANY> <PRICE>9.90</PRICE> <YEAR>1982</YEAR> </CD> </CATALOG>
CSS
CATALOG { background-color: #ffffff; width: 100%; } CD { display: block; margin-bottom: 30pt; margin-left: 0; } TITLE { color: #FF0000; font-size: 20pt; } ARTIST { color: #0000FF; font-size: 20pt; } COUNTRY,PRICE,YEAR,COMPANY { display: block; color: #000000; margin-left: 20pt; }

XML命名空间
XML 命名空间属性放置于元素的开始标签中,语法:
xmlns:namespace-prefix="namespaceURI"
XML CDATA
所有XL文档中的文本全被解析器解析。
只有CDATA区段(CDATA section)中的文本会被解析器忽略。
PCDATA
指的是被解析的字符数据(Parsed Character Data)。
当某个 XML 元素被解析时,其标签之间的文本也会被解析:
<message>此文本也会被解析</message>
因为 XML 元素可包含其他元素:
<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 < 1000 then</message>
XML只有5个转义符: < >& " '
预定义的实体引用
<(less than) <
>(greater than) >
&(ampersand) &
&os; ' 单引号?
" " 引号
附注:
严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。
CDATA
指的是不由 XML 解析器进行解析的文本数据(Unparsed Character Data)。
在 XML 元素中,"<" 和 "&" 是非法的。
"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。
"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。
某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。
CDATA 部分中的所有内容都会被解析器忽略。
语法:<![CDATA[" 开始,由 "]]>
附注:
CDATA 部分不能包含字符串 "]]>"。也不允许嵌套的 CDATA 部分。
标记 CDATA 部分结尾的 "]]>" 不能包含空格或折行。

浙公网安备 33010602011771号