首頁 後端開發 XML/RSS教程 XML特殊字元與空格 換行 轉義符的程式碼詳細介紹

XML特殊字元與空格 換行 轉義符的程式碼詳細介紹

Mar 08, 2017 pm 04:38 PM


關於XAML中是如何處理空格的,MSDN上給出了詳細的描述:http://msdn.microsoft.com/en-us/library/cc189036%28v=VS.95%29. aspx#whitespace
摘重要的簡單說一下:
空格、回車、製表符都被當作空格。
連續的空格會被合併為一個空格。
後緊鄰的空格會被忽略。 前緊鄰的空格會被忽略。換句話說,解析器對中間的字串做Trim。
如何保留空格
給元素加上屬性xml:space="preserve"
設定了這個屬性之後,會保留元素中所有的空格,不會合併連續空格,也不會trim兩頭的空格。
這個方法有個不便,就是它會保留元素中所有的空格,哪怕這些空格是由程式碼格式規整化後產生的。這就意味著,你不能用ctrl+E,F這樣的快捷鍵來整理程式碼格式了,一旦不小心整理了,改回來都很麻煩。
 
因為XAML支援直接寫入Unicode程式碼,這串程式碼代表一個non breaking space.
複雜的文字
有複雜格式的文本,建議使用RichTextBox。
因為文字元素分為block和inline兩種,TextBlock只允許包含inline,所以用來展示少量的文字比較適合。
如果格式比較複雜,注意用好span,span與run的不同在於,span不會繼承父元素的格式,相當於重置格式,不受父元素格式的影響。
* 換行
在XAML輸入回車會被當作一個空格,所有換行要用
另外,兩個Run相鄰,如果是如下排列:

<Run>ab</Run>
<Run>cd</Run>
登入後複製

則顯示成:

ab
cd
登入後複製

會自動在兩個Run之間加上換行符號。
如果要讓回車去掉,顯示成abcd,則應該寫在一行裡:

<Run>ab</Run><Run>cd</Run>
登入後複製

* Tab
首先,XAML中沒有tab,只能用連續的空格來代替。
需要注意,在將一個string賦值給RichTextBox的Xaml屬性時,會合併掉連續的空格,所有如果要保留tab(連續的空格),需要進行這樣一個workaround:

private const string TAB = "    ";
private const string TAB_PLACEHOLDER = "===TAB===";

textBox1.Text = richTextBox1.Xaml;
string xaml = richTextBox1.Xaml;

xaml = xaml.Replace(TAB, TAB_PLACEHOLDER);

richTextBox2.Xaml = xaml;

foreach (Block block in richTextBox2.Blocks)
{
    foreach (Inline inline in ((Paragraph)block).Inlines)
    {
        ((Run)inline).Text = ((Run)inline).Text.Replace(TAB_PLACEHOLDER, TAB);
    }
}
登入後複製

先用一個佔位符來取代四個空格,這樣在給richTextBox的xaml屬性賦值的時候就不會合併空格了。
然後再替換這個佔位符,賦完值替換的時候不會進行合併。
================================================= ===
XAML被XML規則綁定。例如XML對幾個特殊字元有特別意義,像&,<,>。如果你嘗試用這些值來設定一個元素的內容,你可能會出錯,因為XAML解析器假設你正在試圖做某些事情,例如建立巢狀元素。你可以使用字元實體,例如<用<,>用>,&用&,"用" 特殊字元不是你運行XAML的一障礙,另外一個是空格處理。一個字串前,後,字串中的空格,TAB,回車鍵都會被忽略掉,只保留一個空格。你可以使用XML:space="preserve",保留任何空格,TAB,回車鍵。注意,這些規則只對XAML有用,如果你在程式碼中設定內容,任何空格都會保留。
特殊字元和空格
下面的字元在 [XML]中被定義為 空白(whitespace)字元: 
空格 ( ) 
Tab ( ) 
Enter ( ) 
換行 ( )


#

以上是XML特殊字元與空格 換行 轉義符的程式碼詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

能否用PowerPoint開啟XML文件 能否用PowerPoint開啟XML文件 Feb 19, 2024 pm 09:06 PM

XML檔可以用PPT開啟嗎? XML,即可擴展標記語言(ExtensibleMarkupLanguage),是一種廣泛應用於資料交換和資料儲存的通用標記語言。與HTML相比,XML更加靈活,能夠定義自己的標籤和資料結構,使得資料的儲存和交換更加方便和統一。而PPT,即PowerPoint,是微軟公司開發的一種用於創建簡報的軟體。它提供了圖文並茂的方

Python中的XML資料轉換為CSV格式 Python中的XML資料轉換為CSV格式 Aug 11, 2023 pm 07:41 PM

Python中的XML資料轉換為CSV格式XML(ExtensibleMarkupLanguage)是一種可擴充標記語言,常用於資料的儲存與傳輸。而CSV(CommaSeparatedValues)則是一種以逗號分隔的文字檔案格式,常用於資料的匯入和匯出。在處理資料時,有時需要將XML資料轉換為CSV格式以便於分析和處理。 Python作為一種功能強大

Python實作XML與JSON之間的轉換 Python實作XML與JSON之間的轉換 Aug 07, 2023 pm 07:10 PM

Python實作XML與JSON之間的轉換導語:在日常的開發過程中,我們常常需要將資料在不同的格式之間轉換。 XML和JSON是常見的資料交換格式,在Python中,我們可以使用各種函式庫來實作XML和JSON之間的相互轉換。本文將介紹幾種常用的方法,並附帶程式碼範例。一、XML轉JSON在Python中,我們可以使用xml.etree.ElementTree模

使用Python處理XML中的錯誤和異常 使用Python處理XML中的錯誤和異常 Aug 08, 2023 pm 12:25 PM

使用Python處理XML中的錯誤和異常XML是一種常用的資料格式,用於儲存和表示結構化的資料。當我們使用Python處理XML時,有時可能會遇到一些錯誤和異常。在本篇文章中,我將介紹如何使用Python來處理XML中的錯誤和異常,並提供一些範例程式碼供參考。使用try-except語句捕捉XML解析錯誤當我們使用Python解析XML時,有時候可能會遇到一些

學習PHP中如何處理特殊字元轉換單引號 學習PHP中如何處理特殊字元轉換單引號 Mar 27, 2024 pm 12:39 PM

在PHP開發過程中,處理特殊字元是常見的問題,尤其是在字串處理中經常會遇到特殊字元轉義的情況。其中,將特殊字元轉換單引號是比較常見的需求,因為在PHP中,單引號是一種常用的字串包裹方式。在本文中,我們將介紹如何在PHP中處理特殊字元轉換單引號,並提供具體的程式碼範例。在PHP中,特殊字元包括但不限於單引號(')、雙引號(")、反斜線()等。在字串

Python解析XML中的特殊字元和轉義序列 Python解析XML中的特殊字元和轉義序列 Aug 08, 2023 pm 12:46 PM

Python解析XML中的特殊字元和轉義序列XML(eXtensibleMarkupLanguage)是一種常用的資料交換格式,用於在不同系統之間傳輸和儲存資料。在處理XML檔案時,經常會遇到包含特殊字元和轉義序列的情況,這可能會導致解析錯誤或誤解資料。因此,在使用Python解析XML檔案時,我們需要了解如何處理這些特殊字元和轉義序列。一、特殊字元和

C#開發中如何處理XML和JSON資料格式 C#開發中如何處理XML和JSON資料格式 Oct 09, 2023 pm 06:15 PM

C#開發中如何處理XML和JSON資料格式,需要具體程式碼範例在現代軟體開發中,XML和JSON是廣泛應用的兩種資料格式。 XML(可擴展標記語言)是一種用於儲存和傳輸資料的標記語言,而JSON(JavaScript物件表示)是一種輕量級的資料交換格式。在C#開發中,我們經常需要處理和操作XML和JSON數據,本文將重點放在如何使用C#處理這兩種數據格式,並附上

使用Python實現XML中的資料校驗 使用Python實現XML中的資料校驗 Aug 10, 2023 pm 01:37 PM

使用Python實現XML中的資料校驗引言:在現實生活中,我們經常會處理各種各樣的數據,其中XML(可擴展標記語言)是一種常用的數據格式。 XML具有良好的可讀性和可擴充性,廣泛應用於各種領域,如資料交換、設定檔等。在處理XML資料時,我們經常需要對資料進行校驗,以確保資料的完整性和正確性。本文將介紹如何使用Python實現XML中的資料校驗,並給予對應的

See all articles