?? 0703-0600.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0703-0600 -->
<HTML><HEAD><TITLE>XML中國論壇 - 初學進階 - 7.3.6 字符轉義</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>TABLE {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"
}
.pt9 {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"
}
.pt10 {
FONT-WEIGHT: 700; FONT-SIZE: 10pt; LINE-HEIGHT: 18pt; FONT-FAMILY: "宋體"
}
.TempOutline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; COLOR: #666666; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.TempOutline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; COLOR: #666666; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.Outline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.Outline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.Outline11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.passage0 {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.passage1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.passage11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.passage111 {
FONT-SIZE: 9pt; MARGIN-LEFT: 51pt; TEXT-INDENT: -64pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
</STYLE>
<META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD>
<BODY vLink=#000000 aLink=#000000 link=#000000 leftMargin=0 topMargin=0
onload=""><!-- 以下為主體內容 -->
<div align="center">
<center>
<TABLE width="100%" border=0 style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<TBODY>
<TR vAlign=top>
<TD width=40 rowSpan=2></TD>
<TD vAlign=center >
<p align="center"><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD width=44 rowSpan=2></TD>
</TR>
<TR vAlign=top>
<TD ><!-- 正文內容 -->
<DIV class=pt10><B>7.3.6 字符轉義</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P>一般而言,XPointer不會單獨出現,其經常出現的位置是URI、XML文件中,這些上下文對一些特殊字符提出了轉義要求,因此必須對XPointer中出現的相應字符進行轉義。
<OL>
<LI><STRONG>URI編碼和轉義</STRONG> </LI></OL>
<P>XPointer可以用于XLink的屬性xlink:href定位資源片段,xlink:href屬性值必須是URI,而一些字符不能直接出現在URI中,因此必須對這些字符進行轉義。</P>
<P>URI中不允許出現的字符包括所有非ASCII字符和IETF RFC
2396排除的字符,但是其中的"#"、"%"和方括弧可以直接出現在URI中,這是由IETF RFC
2732定義。所有不允許的字符按照如下順序進行轉義。
<UL>
<LI>每一個不允許的字符轉化為相應的UTF-8(IETF RFC 2279)編碼;
<LI>所有不允許的字符按照URI規則進行轉義,即轉化為%HH,HH是該字節的十六進制編碼;
<LI>原有的字符序列用新的字符序列替換。 </LI></UL>
<P>例如:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%">xpointer(id( résumé )) <BR>xpointer(//*[@id= résumé
])</TD></TR></TBODY></TABLE></CENTER></DIV>
<P>轉義為:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%">xpointer(id( r%C3%A9sum%C3%A9 ))%20
<BR>xpointer(//*%5B@id= r%C3%A9sum%C3%A9
%5D)</TD></TR></TBODY></TABLE></CENTER></DIV>
<P>注意:雖然IETF RFC 2732允許方括弧直接出現,但是為了兼容那些未實現該標準的程序,方括弧最好轉義出現。
<OL start=2>
<LI><STRONG>XML轉義</STRONG> </LI></OL>
<P>由于XPointer是出現在XML文件中,必須按照XML的要求對相應的字符進行轉義。包括"<"、"&"和XML規范規定的其他特殊字符,"<"和"&"轉義后分別為"&lt;"和"&amp;",其他特殊字符的轉義可以參考XML規范中的規定。例如:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD
width="100%">xpointer(//book/chapter[position()<=5])</TD></TR></TBODY></TABLE></CENTER></DIV>
<P>轉義為:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%">xpointer(//book/chapter[position() &lt;=
5])</TD></TR></TBODY></TABLE></CENTER></DIV>
<OL start=3>
<LI><STRONG>XPointer轉義</STRONG> </LI></OL>
<P>XPointer本身對一些字符提出了轉義要求。為了保證正確識別和計算,XPointer的各個部分(XPointer的一個部分是指一個完整的XPointer(…),多個XPointer(…)連接起來形成一個完整形式的XPointer)要求括弧匹配,因此必須對不匹配的括弧進行轉義,即使在字符串常量中的括弧也必須進行轉義。轉義的方法是在前面加上一個"^",如果表達式中出現"^",則在前再加一個"^",即用"^("代替"(",用"^)"代替")",用"^^"代替"^"。</P>
<P>注意:轉義只是針對不匹配的括弧,而不是對所有括弧。<BR></P></DIV>
<P></P>
<P></P></TD></TR></TBODY></TABLE>
</center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -