跳轉到內容

XQuery/特殊字元

來自華夏公益教科書,自由的教科書

您希望控制在 XML 檔案中放置換行符和引號等特殊字元的位置。

我們將使用 &#NN; 表示法建立 XQuery 變數(引用)到十進位制編碼的字元值,其中 NN 是此字元在字元集中的十進位制數字。然後,我們可以在輸出流中的任何位置新增這些變數。

示例程式

[編輯 | 編輯原始碼]

在這個例子中,我們將建立一個變數 $nl,並讓它引用換行符。然後,我們將把它放在一個字串的中間。

xquery version "1.0";
let $nl := "
"
let $string := concat("Hello", $nl, "World")
return $string

返回值

  Hello
  World

以下顯示瞭如何建立引號和換行符等特殊字元。

let $nl := "
"
let $quote := """
let $string := concat($quote, "Hello", $nl, "World", $quote)
return $string

返回值

  "Hello
  World"

請注意,這些變數的字串長度 string-length($nl) 和 string-length($quote) 僅為一個字元。

其他有用的跳脫字元

[編輯 | 編輯原始碼]
let $open-curly := '{' (: for { :)
let $closed-curly := '}' (: for } :)
let $space := ' ' (: space :)
let $tab := '	' (: tab :)
let $ampersand := '&' (: ampersand :)
let $zwsp := '​' (: zero width space :)

使用零寬度空格字元進行換行

[編輯 | 編輯原始碼]

如果您在文字中包含 URL,以確保當啟用連字元功能時它們能夠優雅地換行

let $zwsp := '​' (: this is the unicode character for a zero-width space :)
let $break-before-hint := replace($node, '([%?])', concat($zwsp, '$1'))
let $break-after-hint := 
   replace($break-before-hint, '([\.=&])', concat('$1', $zwsp))
return
        $break-after-hint

由 Joe Wicentowski 於 2014 年 3 月貢獻

參考資料

[編輯 | 編輯原始碼]

有關其他字元,請參見下表

華夏公益教科書