轉(zhuǎn)帖|其它|編輯:郝浩|2012-02-22 23:30:35.000|閱讀 362 次
概述: 本章節(jié)主要介紹如何在Text Control中使用XML文件,包括如何打開XML文件,以及如何與CSS文件及DTD文件協(xié)同工作。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
本章節(jié)主要介紹如何在Text Control中使用XML文件,包括如何打開XML文件,以及如何與CSS文件及DTD文件協(xié)同工作。
本章節(jié)相應(yīng)的源代碼可以在TX Text Control.NET的安裝目錄中找到:
Samples\WinForms\VB.NET\ XMLBasics
Samples\WinForms\CSharp\ XMLBasics
(一)示例程序
示例程序中只有一個【Open File...】菜單項,源代碼與其它Text Control程序并沒有多大的區(qū)別,僅僅是在調(diào)用Load方法時選擇了TXTextControl.StreamType.XMLFormat作為參數(shù),所以在文件對話框中只顯示XML文件:
[C#]
private void mnuFile_Open_Click(object sender, System.EventArgs e)
{
textControl1.Load(TXTextControl.StreamType.XMLFormat);
}
通過這種方式打開一個XML文件,Text Control不僅僅是加載XML文件,還會依照DTD文件自動地對XML文件運行驗證,同時會依照CSS中的樣式設(shè)置來格式化XML文件。下面就進一步的討論XML、CSS和DTD三種文件。
(二)XML文件
該示例程序使用的XML文件包含一個地址信息:
<?xml version="1.0"?>
<?XML:stylesheet type="text/css" href="address.css"?>
<!DOCTYPE address SYSTEM "address.dtd">
<address>
<address_record>
<name>Paul</name>
<street>Baker Street</street>
<city>London</city>
<email>[email=paul@hotmail.com]paul@hotmail.com[/email]</email>
</address_record>
<address_record>
<name>George</name>
<email>[email=george@hotmail.com]george@hotmail.com[/email]</email>
</address_record>
</address>
需要注意的是,XML文件并不像HTML和RTF文件那樣包含顯示格式的相關(guān)信息。
(三)CSS文件
在XML文件的第二行,我們可以看到XML文件引用了address.css文件,該CSS文件中指明了address對象應(yīng)該按照表格進行顯示,address對象的每項數(shù)據(jù)單獨顯示在表格的單元格中,表格有一個像素的邊框,字體大小為11個像素。
address { display: table }
address_record { display: table-row}
name, street, city, email { display: table-cell; border: 1px; font-size: 11pt }
加載address.xml之后,可以在Text Control中看到以下格式的文本
通過修改CSS文件可以調(diào)整數(shù)據(jù)的顯示樣式,例如,將之前使用的表格顯示方式調(diào)整為列表顯示方式:
name { display: block; font-size: 14pt; color: blue }
street, city, email { display: list-item; font-size: 11pt}
(四)DTD
DTD文件用于規(guī)定XML文件中元素的相關(guān)信息,元素應(yīng)該是順序形式還是級聯(lián)形式。下面的DTD示例文件指明了一個adress包含一個或者多個address_record元素,每個address_record可以包含name、street、city和email元素,其中street和city是可選的元素。
<!ELEMENT address ( address_record+ )>
<!ELEMENT address_record ( name, street?, city?, email )>
<!ELEMENT name (#PCDATA )>
<!ELEMENT street (#PCDATA )>
<!ELEMENT city (#PCDATA )>
<!ELEMENT email (#PCDATA )>
當(dāng)加載XML文件時,Text Control會根據(jù)DTD文件來檢查該XML文件是否正確,如果XML文件中的數(shù)據(jù)不符合DTD文件中相應(yīng)元素的定義,將會產(chǎn)生一個錯誤信息。
這種嚴(yán)格的錯誤檢查也是XML文件的優(yōu)勢之一,通過這種錯誤檢查可以確保XML文件有一個固定的結(jié)構(gòu),以便于其它應(yīng)用程序使用。
(五)XML模式下的編輯操作
下面將演示普通文本編輯和XML文件編輯之間的一些差異。使用的源代碼可以在以下目錄中找到: ?
Samples\WinForms\VB.NET\ XMLEditing
Samples\WinForms\CSharp\ XMLEditing
運行示例程序并加載address_list.xml文件,你會發(fā)現(xiàn)在按鈕欄中會多出三個下拉框:
你不必關(guān)心這些下拉框該如何創(chuàng)建,因為這是ButtonBar內(nèi)置的功能。
第一個下拉框顯示了當(dāng)前XML字段使用的樣式,如果你按下方向鍵中的向下鍵,顯示內(nèi)容將根據(jù)你當(dāng)前字段的類型從name變?yōu)閟treet、city或email。第二個下拉框?qū)@示可以插入的XML字段。
你可以選擇插入一個完整的address記錄,或其中的一個節(jié)點。根據(jù)DTD文件中的定義,并不是所有節(jié)點都是可以進行插入的。例如:你點擊文檔中第一行的Paul,并試圖插入一個street節(jié)點,程序?qū)⒊霈F(xiàn)一個錯誤,因為這條記錄已經(jīng)包含了street節(jié)點,如果插入Ringo就是正確的。
第三個下拉框是用于刪除XML字段的,所有操作都是根據(jù)DTD文件中的定義來執(zhí)行的,你可以根據(jù)DTD文件來查看哪些操作時允許的,哪些是被禁止的。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:葡萄城控件技術(shù)團隊博客