青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 40, 文章 - 0, 評(píng)論 - 9, 引用 - 0
數(shù)據(jù)加載中……

TinyXML中文文檔

http://www.hansencode.cn/2007/06/tinyxml-chinese-doc.html

TinyXML是一個(gè)簡(jiǎn)單小巧,可以很容易集成到其它程序中的C++ XML解析器。

它能做些什么

簡(jiǎn)單地說(shuō),TinyXML解析一個(gè)XML文檔并由此生成一個(gè)可讀可修改可保存的文檔對(duì)象模型(DOM)。

XML的意思是“可擴(kuò)展標(biāo)記語(yǔ)言“(eXtensible Markup Language)。它允許你創(chuàng)建你自己的文檔標(biāo)記。在為瀏覽器標(biāo)記文檔方面HTML做得很好,然而XML允許你定義任何文檔標(biāo)記,比如可以為一個(gè)組織者 應(yīng)用程序定義一個(gè)描述“to do”列表的文檔。 XML擁有一個(gè)結(jié)構(gòu)化并且方便的格式,所有為存儲(chǔ)應(yīng)用程序數(shù)據(jù)而創(chuàng)建的隨機(jī)文件格式都可以用XML代替,而這一切只需要一個(gè)解析器。

最全面正確的說(shuō)明可以在http://www.w3.org/TR/2004/REC-xml-20040204/找到,但坦白地說(shuō),它很晦澀難懂。事實(shí)上我喜歡http://skew.org/xml/tutorial上關(guān)于XML的介紹。

有不同的方法可以訪問(wèn)和與XML數(shù)據(jù)進(jìn)行交互。TinyXML使用文檔對(duì)象模型(DOM),這意味著XML數(shù)據(jù)被解析成一個(gè)可被瀏覽和操作的C++ 對(duì)象,然后它可以被寫(xiě)到磁盤(pán)或者另一個(gè)輸出流中。你也可以把C++對(duì)象構(gòu)造成一個(gè)XML文檔然后把它寫(xiě)到磁盤(pán)或者另一個(gè)輸出流中。

TinyXML被設(shè)計(jì)得容易快速上手。它只有兩個(gè)頭文件和四個(gè)cpp文件。只需要把它們簡(jiǎn)單地加到你的項(xiàng)目中就行了。有一個(gè)例子文件——xmltest.cpp來(lái)引導(dǎo)你該怎么做。

TinyXML以Zlib許可來(lái)發(fā)布,所以你可以在開(kāi)源或者商業(yè)軟件中使用它。許可證更具體的描述在每個(gè)源代碼文件的頂部可以找到。

TinyXML在保證正確和恰當(dāng)?shù)腦ML輸出的基礎(chǔ)上嘗試成為一個(gè)靈活的解析器。TinyXML可以在任何合理的C++適用系統(tǒng)上編譯。它不依賴于 異常或者運(yùn)行時(shí)類型信息,有沒(méi)有STL支持都可以編譯。TinyXML完全支持UTF-8編碼和前64k個(gè)字符實(shí)體(<i>譯注:如果你不明 白這句譯文,可能你需要了解一下Unicode編碼</i>)。

它無(wú)法做些什么

TinyXML不解析不使用DTDs(文檔類型定義)或者XSLs(可擴(kuò)展樣式表語(yǔ)言)。有其它解析器(到www.sourceforge.org 搜索一下XML)具有更加全面的特性,但它們也就更大,需要花更長(zhǎng)的時(shí)間來(lái)建立你的項(xiàng)目,有更陡的學(xué)習(xí)曲線,而且經(jīng)常有一個(gè)更嚴(yán)格的許可協(xié)議。如果你是用 于瀏覽器或者有更復(fù)雜的XML需要,那么TinyXML不適合你。

下面的DTD語(yǔ)法在TinyXML里是不做解析的:

<!DOCTYPE Archiv [
<!ELEMENT Comment (#PCDATA)>
]>

因?yàn)門(mén)inyXML把它看成是一個(gè)帶著非法嵌入!ELEMENT結(jié)點(diǎn)的!DOCTYPE結(jié)點(diǎn)。或許這在將來(lái)會(huì)得到支持。

指南

有耐性些,這是一份能很好地指導(dǎo)你怎么開(kāi)始的指南,它(非常短小精悍)值得你花時(shí)間完整地讀上一遍。

代碼狀況

TinyXML是成熟且經(jīng)過(guò)測(cè)試的代碼,非常健壯。如果你發(fā)現(xiàn)了漏洞,請(qǐng)?zhí)峤宦┒磮?bào)告到sourcefore網(wǎng)站上 (www.sourceforge.net/projects/tinyxml)。 我們會(huì)盡快修正。

有些地方可以讓你得到提高,如果你對(duì)TinyXML的工作感興趣的話可以上sourceforge查找一下。

相關(guān)項(xiàng)目

你也許會(huì)覺(jué)得TinyXML很有用!(簡(jiǎn)介由項(xiàng)目提供)

  • TinyXPath (http://tinyxpath.sourceforge.net). TinyXPath是一個(gè)小巧的XPath語(yǔ)法譯碼器腳本,用C++寫(xiě)成。
  • TinyXML++ (http://code.google.com/p/ticpp/). TinyXML++是一個(gè)全新的TinyXML接口,使用了許多諸如模板,異常處理和更好的錯(cuò)誤處理這些C++強(qiáng)項(xiàng)技術(shù)。

特性

使用STL

TinyXML可以被編譯成使用或不使用STL。如果使用STL,TinyXML會(huì)使用std::string類,而且完全支持 std::istream,std::ostream,operator<<和operator>>。許多API方法都有 ‘const char*’和’const std::string&’兩個(gè)版本。

如果被編譯成不使用STL,則任何STL都不會(huì)被包含。所有string類都由TinyXML它自己實(shí)現(xiàn)。所有API方法都只提供’const char*’傳入?yún)?shù)。

使用運(yùn)行時(shí)定義:

TIXML_USE_STL

來(lái)編譯成不同的版本。這可以作為參數(shù)傳給編譯器或者在“tinyxml.h”文件的第一行進(jìn)行設(shè)置。

注意:如果在Linux上編譯測(cè)試代碼,設(shè)置環(huán)境變量TINYXML_USE_STL=YES/NO可以控制STL的編譯。而在Windows上, 項(xiàng)目文件提供了STL和非STL兩種目標(biāo)文件。在你的項(xiàng)目中,在tinyxml.h的第一行添加"#define TIXML_USE_STL"應(yīng)該是最簡(jiǎn)單的。

UTF-8

TinyXML支持UTF-8,所以可以處理任何語(yǔ)言的XML文件,而且TinyXML也支持“legacy模式”——一種在支持UTF-8之前使用的編碼方式,可能最好的解釋是“擴(kuò)展的ascii”。

正常情況下,TinyXML會(huì)檢測(cè)出正確的編碼并使用它,然而,通過(guò)設(shè)置頭文件中的TIXML_DEFAULT_ENCODING值,TinyXML可以被強(qiáng)制成總是使用某一種編碼。

除非以下情況發(fā)生,否則TinyXML會(huì)默認(rèn)使用Legacy模式:

  1. 如果文件或者數(shù)據(jù)流以非標(biāo)準(zhǔn)但普遍的"UTF-8引導(dǎo)字節(jié)" (0xef 0xbb 0xbf)開(kāi)始,TinyXML會(huì)以UTF-8的方式來(lái)讀取它。
  2. 如果包含有encoding="UTF-8"的聲明被讀取,那么TinyXML會(huì)以UTF-8的方式來(lái)讀取它。
  3. 如果讀取到?jīng)]有指定編碼方式的聲明,那么TinyXML會(huì)以UTF-8的方式來(lái)讀取它。
  4. 如果包含有encoding=“其它編碼”的聲明被讀取,那么TinyXML會(huì)以Legacy模式來(lái)讀取它。在Legacy模式下,TinyXML會(huì)像以前那樣工作,雖然已經(jīng)不是很清楚這種模式是如何工作的了,但舊的內(nèi)容還得保持能夠運(yùn)行。
  5. 除了上面提到的情況,TinyXML會(huì)默認(rèn)運(yùn)行在Legacy模式下。

如果編碼設(shè)置錯(cuò)誤或者檢測(cè)到錯(cuò)誤會(huì)發(fā)生什么事呢?TinyXML會(huì)嘗試跳過(guò)這些看似不正確的編碼,你可能會(huì)得到一些奇怪的結(jié)果或者亂碼,你可以強(qiáng)制TinyXML使用正確的編碼模式。

通過(guò)使用LoadFile( TIXML_ENCODING_LEGACY )或者LoadFile( filename, TIXML_ENCODING_LEGACY ), 你可以強(qiáng)制TinyXML使用Legacy模式。你也可以通過(guò)設(shè)置TIXML_DEFAULT_ENCODING = TIXML_ENCODING_LEGACY來(lái)強(qiáng)制一直使用Legacy模式。同樣的,你也可以通過(guò)相同的方法來(lái)強(qiáng)制設(shè)置成 TIXML_ENCODING_UTF8。

對(duì)于使用英文XML的英語(yǔ)用戶來(lái)說(shuō),UTF-8跟low-ASCII是一樣的。你不需要知道UTF-8或者一點(diǎn)也不需要修改你的代碼。你可以把UTF-8當(dāng)作是ASCII的超集。

UTF-8并不是一種雙字節(jié)格式,但它是一種標(biāo)準(zhǔn)的Unicode編碼!TinyXML當(dāng)前不使用或者直接支持wchar,TCHAR,或者微軟的 _UNICODE。"Unicode"這個(gè)術(shù)語(yǔ)被普遍地認(rèn)為指的是UTF-16(一種unicode的寬字節(jié)編碼)是不適當(dāng)?shù)模@是混淆的來(lái)源。

對(duì)于“high-ascii”語(yǔ)言來(lái)說(shuō)——幾乎所有非英語(yǔ)語(yǔ)言,只要XML被編碼成UTF-8, TinyXML就能夠處理。說(shuō)起來(lái)可能有點(diǎn)微妙,比較舊的程序和操作系統(tǒng)趨向于使用“默認(rèn)”或者“傳統(tǒng)”的編碼方式。許多應(yīng)用程序(和幾乎所有現(xiàn)在的應(yīng)用 程序)都能夠輸出UTF-8,但是那些比較舊或者難處理的(或者干脆不能使用的)系統(tǒng)還是只能以默認(rèn)編碼來(lái)輸出文本。

比如說(shuō),日本的系統(tǒng)傳統(tǒng)上使用SHIFT-JIS編碼,這種情況下TinyXML就無(wú)法讀取了。但是一個(gè)好的文本編輯器可以導(dǎo)入SHIFT-JIS的文本然后保存成UTF-8編碼格式的。

Skew.org link上關(guān)于轉(zhuǎn)換編碼的話題做得很好。

測(cè)試文件“utf8test.xml”包含了英文、西班牙文、俄文和簡(jiǎn)體中文(希望它們都能夠被正確地轉(zhuǎn)化)。“utf8test.gif”文件是 從IE上截取的XML文件快照。請(qǐng)注意如果你的系統(tǒng)上沒(méi)有正確的字體(簡(jiǎn)體中文或者俄文),那么即使你正確地解析了也看不到與GIF文件上一樣的輸出。同 時(shí)要注意在一個(gè)西方編碼的控制臺(tái)上(至少我的Windows機(jī)器是這樣),Print()或者printf()也無(wú)法正確地顯示這個(gè)文件,這不關(guān) TinyXML的事——這只是操作系統(tǒng)的問(wèn)題。TinyXML沒(méi)有丟掉或者損壞數(shù)據(jù),只是控制臺(tái)無(wú)法顯示UTF-8而已。

實(shí)體

TinyXML認(rèn)得預(yù)定義的特殊“字符實(shí)體”,即:

&amp; &
&lt; <
&gt; >
&quot; "
&apos; ‘

這些在XML文檔讀取時(shí)都會(huì)被辨認(rèn)出來(lái),并會(huì)被轉(zhuǎn)化成等價(jià)的UTF-8字符。比如下面的XML文本:

Far &amp; Away

從TiXmlText 對(duì)象查詢出來(lái)時(shí)會(huì)變成"Far & Away"這樣的值,而寫(xiě)回XML流/文件時(shí)會(huì)以“&amp;”的方式寫(xiě)回。老版本的TinyXML“保留”了字符實(shí)體,而在新版本中它們會(huì)被轉(zhuǎn)化成字符串。

另外,所有字符都可以用它的Unicode編碼數(shù)字來(lái)指定, " "和" "都表示不可分的空格字符。

打印

TinyXML有幾種不同的方式來(lái)打印輸出,當(dāng)然它們各有各的優(yōu)缺點(diǎn)。

  • Print( FILE* ):輸出到一個(gè)標(biāo)準(zhǔn)C流中,包括所有的C文件和標(biāo)準(zhǔn)輸出。
    • "相當(dāng)漂亮的打印", 但你沒(méi)法控制打印選項(xiàng)。
    • 輸出數(shù)據(jù)直接寫(xiě)到FILE對(duì)象中,所以TinyXML代碼沒(méi)有內(nèi)存負(fù)擔(dān)。
    • 被Print()和SaveFile()調(diào)用。
  • operator<<:輸出到一個(gè)c++流中。
    • 與C++ iostreams集成在一起。
    • 在"network printing"模式下輸出沒(méi)有換行符,這對(duì)于網(wǎng)絡(luò)傳輸和C++對(duì)象之間的XML交換有好處,但人很難閱讀。
  • TiXmlPrinter:輸出到一個(gè)std::string或者內(nèi)存緩沖區(qū)中。
    • API還不是很簡(jiǎn)練。
    • 將來(lái)會(huì)增加打印選項(xiàng)。
    • 在將來(lái)的版本中可能有些細(xì)微的變化,因?yàn)樗鼤?huì)被改進(jìn)和擴(kuò)展。

設(shè)置了TIXML_USE_STL,TinyXML就能支持C++流(operator <<,>>)和C(FILE*)流。但它們之間有些差異你需要知道:

C風(fēng)格輸出:

  • 基于FILE*
  • 用Print()和SaveFile()方法

生成具有很多空格的格式化過(guò)的輸出,這是為了盡可能讓人看得明白。它們非常快,而且能夠容忍XML文檔中的格式錯(cuò)誤。例如一個(gè)XML文檔包含兩個(gè)根元素和兩個(gè)聲明仍然能被打印出來(lái)。

C風(fēng)格輸入:

  • 基于FILE*
  • 用Parse()和LoadFile()方法

速度快,容錯(cuò)性好。當(dāng)你不需要C++流時(shí)就可以使用它。

C++風(fēng)格輸出:

  • 基于std::ostream
  • operator<<

生成壓縮過(guò)的輸出,目的是為了便于網(wǎng)絡(luò)傳輸而不是為了可讀性。它可能有些慢(可能不會(huì)),這主要跟你系統(tǒng)上ostream類的實(shí)現(xiàn)有關(guān)。無(wú)法容忍格式錯(cuò)誤的XML:此文檔只能包含一個(gè)根元素。另外根級(jí)別的元素?zé)o法以流形式輸出。

C++風(fēng)格輸入:

  • 基于std::istream
  • operator>>

從流中讀取XML使其可用于網(wǎng)絡(luò)傳輸。通過(guò)些小技巧,它知道當(dāng)XML文檔讀取完畢時(shí),流后面的就一定是其它數(shù)據(jù)了。TinyXML總假定當(dāng)它讀取到 根結(jié)點(diǎn)后XML數(shù)據(jù)就結(jié)束了。換句話說(shuō),那些具有不止一個(gè)根元素的文檔是無(wú)法被正確讀取的。另外還要注意由于STL的實(shí)現(xiàn)和TinyXML的限 制,operator>>會(huì)比Parse慢一些。

空格

對(duì)是保留還是壓縮空格這一問(wèn)題人們還沒(méi)達(dá)成共識(shí)。舉個(gè)例子,假設(shè)‘_’代表一個(gè)空格,對(duì)于"Hello____world",HTML和某些XML 解析器會(huì)解釋成"Hello_world",它們壓縮掉了一些空格。而有些XML解析器卻不會(huì)這樣,它們會(huì)保留空格,于是就是 “Hello____world”(記住_表示一個(gè)空格)。其它的還建議__Hello___world__應(yīng)該變成Hello___world 。

這是一個(gè)解決得不能讓我滿意的問(wèn)題。TinyXML一開(kāi)始就兩種方式都支持。調(diào)用TiXmlBase::SetCondenseWhiteSpace( bool )來(lái)設(shè)置你想要的結(jié)果,默認(rèn)是壓縮掉多余的空格。

如果想要改變默認(rèn)行為,你應(yīng)該在解析任何XML數(shù)據(jù)之前調(diào)用TiXmlBase::SetCondenseWhiteSpace( bool ) ,而且我不建議設(shè)置之后再去改動(dòng)它。

句柄

想要健壯地讀取一個(gè)XML文檔,檢查方法調(diào)用后的返回值是否為null是很重要的。一種安全的檢錯(cuò)實(shí)現(xiàn)可能會(huì)產(chǎn)生像這樣的代碼:

TiXmlElement* root = document.FirstChildElement( "Document" );
if ( root )
{
    TiXmlElement* element = root->FirstChildElement( "Element" );
    if ( element )
    {
        TiXmlElement* child = element->FirstChildElement( "Child" );
        if ( child )
        {
            TiXmlElement* child2 = child->NextSiblingElement( "Child" );
            if ( child2 )
            {
                // Finally do something useful.

用句柄的話就不會(huì)這么冗長(zhǎng)了,使用TiXmlHandle類,前面的代碼就會(huì)變成這樣:

TiXmlHandle docHandle( &document );
TiXmlElement* child2 = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", 1 ).ToElement();
if ( child2 )
{
    // do something useful

這處理起來(lái)容易多了。 查閱TiXmlHandle可以得到更多的信息。

行列追蹤

對(duì)于某些應(yīng)用程序來(lái)說(shuō),能夠追蹤節(jié)點(diǎn)和屬性在它們?cè)次募械脑嘉恢檬呛苤匾摹A硗猓澜馕鲥e(cuò)誤在源文件中的發(fā)生位置可以節(jié)省大量時(shí)間。

TinyXML能夠追蹤所有結(jié)點(diǎn)和屬性在文本文件中的行列原始位置。TiXmlBase::Row() 和 TiXmlBase::Column() 方法返回結(jié)點(diǎn)在源文件中的原始位置。正確的制表符號(hào)可以經(jīng)由TiXmlDocument::SetTabSize() 來(lái)配置。

使用與安裝

編譯與運(yùn)行xmltest:

提供了一個(gè)Linux Makefile和一個(gè)Windows Visual C++ .dsw 文件。只需要簡(jiǎn)單地編譯和運(yùn)行,它就會(huì)在你的磁盤(pán)上生成demotest.xml文件并在屏幕上輸出。它還嘗試用不同的方法遍歷DOM并打印出結(jié)點(diǎn)數(shù)。

那個(gè)Linux makefile很通用,可以運(yùn)行在很多系統(tǒng)上——它目前已經(jīng)在mingw和MacOSX上測(cè)試過(guò)。你不需要運(yùn)行 ‘make depend’,因?yàn)槟切┮蕾囮P(guān)系已經(jīng)硬編碼在文件里了。

用于VC6的Windows項(xiàng)目文件

  • tinyxml: tinyxml 庫(kù),非STL
  • tinyxmlSTL: tinyxml 庫(kù),STL
  • tinyXmlTest: 用于測(cè)試的應(yīng)用程序,非STL
  • tinyXmlTestSTL: 用于測(cè)試的應(yīng)用程序,STL

Makefile

在makefile的頂部你可以設(shè)置:

PROFILE,DEBUG,和TINYXML_USE_STL。makefile里有具體描述。

在tinyxml目錄輸入“make clean”然后“make”,就可以生成可執(zhí)行的“xmltest”文件。

在某一應(yīng)用程序中使用:

把tinyxml.cpp,tinyxml.h, tinyxmlerror.cpp, tinyxmlparser.cpp, tinystr.cpp, 和 tinystr.h 添加到你的項(xiàng)目和makefile中。就這么簡(jiǎn)單,它可以在任何合理的C++適用系統(tǒng)上編譯。不需要為T(mén)inyXML打開(kāi)異常或者運(yùn)行時(shí)類型信息支持。

TinyXML怎么工作

舉個(gè)例子可能是最好的辦法,理解一下:

<?xml version="1.0" standalone=no>
<!– Our to do list data –>
<ToDo>
<Item priority="1"> Go to the <bold>Toy store!</bold></Item>
<Item priority="2"> Do bills</Item>
</ToDo>

它稱不上是一個(gè)To Do列表,但它已經(jīng)足夠了。像下面這樣讀取并解析這個(gè)文件(叫“demo.xml”)你就能創(chuàng)建一個(gè)文檔:

TiXmlDocument doc( "demo.xml" );
doc.LoadFile();

現(xiàn)在它準(zhǔn)備好了,讓我們看看其中的某些行和它們?cè)趺磁cDOM聯(lián)系起來(lái)。

<?xml version="1.0" standalone=no>

第一行是一個(gè)聲明,它會(huì)轉(zhuǎn)化成TiXmlDeclaration 類,同時(shí)也是文檔結(jié)點(diǎn)的第一個(gè)子結(jié)點(diǎn)。

這是TinyXML唯一能夠解析的指令/特殊標(biāo)簽。一般來(lái)說(shuō)指令標(biāo)簽會(huì)保存在TiXmlUnknown 以保證在它保存回磁盤(pán)時(shí)不會(huì)丟失這些命令。

<!– Our to do list data –>

這是一個(gè)注釋,會(huì)成為一個(gè)TiXmlComment對(duì)象。

<ToDo>

"ToDo"標(biāo)簽定義了一個(gè)TiXmlElement 對(duì)象。它沒(méi)有任何屬性,但包含另外的兩個(gè)元素。

<Item priority="1">

生成另一個(gè)TiXmlElement對(duì)象,它是“ToDo”元素的子結(jié)點(diǎn)。此元素有一個(gè)名為“priority”和值為“1”的屬性。

Go to the

TiXmlText ,這是一個(gè)葉子結(jié)點(diǎn),它不能再包含其它結(jié)點(diǎn),是"Item" TiXmlElement的子結(jié)點(diǎn)。

<bold>

另一個(gè)TiXmlElement, 這也是“Item”元素的子結(jié)點(diǎn)。

等等

最后,看看整個(gè)對(duì)象樹(shù):

TiXmlDocument "demo.xml"
TiXmlDeclaration "version=’1.0′" "standalone=no"
TiXmlComment " Our to do list data"
TiXmlElement "ToDo"
TiXmlElement "Item" Attribtutes: priority = 1
TiXmlText "Go to the "
TiXmlElement "bold"
TiXmlText "Toy store!"
TiXmlElement "Item" Attributes: priority=2
TiXmlText "Do bills"

文檔

本文檔由Doxygen使用‘dox’配置文件生成。

許可證

TinyXML基于zlib許可證來(lái)發(fā)布:

本軟件按“現(xiàn)狀”提供(即現(xiàn)在你看到的樣子),不做任何明確或隱晦的保證。由使用此軟件所引起的任何損失都決不可能由作者承擔(dān)。

只要遵循下面的限制,就允許任何人把這軟件用于任何目的,包括商業(yè)軟件,也允許修改它并自由地重新發(fā)布:

1. 決不能虛報(bào)軟件的來(lái)源;你決不能聲稱是你是軟件的第一作者。如果你在某個(gè)產(chǎn)品中使用了這個(gè)軟件,那么在產(chǎn)品文檔中加入一個(gè)致謝辭我們會(huì)很感激,但這并非必要。

2. 修改了源版本就應(yīng)該清楚地標(biāo)記出來(lái),決不能虛報(bào)說(shuō)這是原始軟件。

3. 本通告不能從源發(fā)布版本中移除或做修改。

參考書(shū)目

萬(wàn)維網(wǎng)聯(lián)盟是定制XML的權(quán)威標(biāo)準(zhǔn)機(jī)構(gòu),它的網(wǎng)頁(yè)上有大量的信息。

權(quán)威指南:http://www.w3.org/TR/2004/REC-xml-20040204/

我還要推薦由OReilly出版由Robert Eckstein撰寫(xiě)的"XML Pocket Reference"……這本書(shū)囊括了入門(mén)所需要的一切。

捐助者,聯(lián)系人,還有簡(jiǎn)史

非常感謝給我們建議,漏洞報(bào)告,意見(jiàn)和鼓勵(lì)的所有人。它們很有用,并且使得這個(gè)項(xiàng)目變得有趣。特別感謝那些捐助者,是他們讓這個(gè)網(wǎng)站頁(yè)面生機(jī)勃勃。

有很多人發(fā)來(lái)漏洞報(bào)告和意見(jiàn),與其在這里一一列出來(lái)不如我們?cè)囍阉鼈儗?xiě)到“changes.txt”文件中加以贊揚(yáng)。

TinyXML的原作者是Lee Thomason(文檔中還經(jīng)常出現(xiàn)“我”這個(gè)詞) 。在Yves Berquin,Andrew Ellerton,和tinyXml社區(qū)的幫助下,Lee查閱修改和發(fā)布新版本。

我們會(huì)很感激你的建議,還有我們想知道你是否在使用TinyXML。希望你喜歡它并覺(jué)得它很有用。請(qǐng)郵寄問(wèn)題,評(píng)論,漏洞報(bào)告給我們,或者你也可登錄網(wǎng)站與我們?nèi)〉寐?lián)系:

www.sourceforge.net/projects/tinyxml

Lee Thomason, Yves Berquin, Andrew Ellerton



posted on 2008-10-14 16:52 閱讀(1432) 評(píng)論(0)  編輯 收藏 引用 所屬分類: xml編譯器

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美成人午夜剧场免费观看| 午夜一区二区三区在线观看| 亚洲福利视频一区| 久久精品亚洲精品| 亚洲国产二区| 亚洲精品日韩综合观看成人91| 欧美日韩精品免费看| 亚洲综合导航| 欧美在线一二三区| 亚洲激情专区| 亚洲少妇在线| 国产一区二区观看| 欧美激情精品久久久久久免费印度| 欧美激情在线有限公司| 亚洲欧美日韩国产| 久久亚洲欧美| 亚洲图片在线观看| 久久久久久久综合色一本| 亚洲破处大片| 亚洲女人小视频在线观看| 影音欧美亚洲| 亚洲一区在线看| 在线日韩中文字幕| 99re66热这里只有精品4| 一本色道久久综合亚洲精品不| 一区二区三区产品免费精品久久75 | 欧美一区二区三区免费大片| 亚洲国产精品久久久久婷婷老年 | 国产麻豆精品久久一二三| 蜜桃av一区二区在线观看| 国产精品国内视频| 亚洲人成在线播放| 永久久久久久| 亚洲一区高清| 亚洲视频精品| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲免费综合| 欧美国产亚洲精品久久久8v| 久久gogo国模啪啪人体图| 欧美精品精品一区| 麻豆精品在线观看| 国产日韩欧美| 亚洲视频欧美视频| 一区二区三区日韩欧美精品| 久久精品噜噜噜成人av农村| 欧美有码在线视频| 欧美日韩在线免费视频| 亚洲国产精品va在线看黑人动漫| 国产日产欧美a一级在线| 99成人精品| 亚洲一区二区三区乱码aⅴ| 欧美成人一区在线| 欧美成人午夜| 亚洲成色最大综合在线| 久久久999精品| 久久免费高清视频| 国产一区二区三区不卡在线观看| 亚洲神马久久| 亚洲在线观看免费| 国产精品免费在线| 性色av香蕉一区二区| 亚洲欧美日韩一区| 国产农村妇女毛片精品久久麻豆| 国产精品99久久久久久人 | 国产在线日韩| 欧美中文字幕在线| 久久久久久久综合色一本| 国产伊人精品| 久久久爽爽爽美女图片| 欧美护士18xxxxhd| 亚洲精品欧美| 欧美性开放视频| 亚洲欧美日韩一区二区三区在线| 久久av最新网址| 亚洲电影成人| 欧美黄网免费在线观看| 亚洲美女黄色片| 欧美一区二区三区在线观看视频| 欧美激情二区三区| 欧美日韩国产一中文字不卡 | 久久精品人人做人人爽电影蜜月| 国产视频在线观看一区二区三区| 欧美一级在线播放| 男人天堂欧美日韩| 一区二区三区高清视频在线观看| 欧美三级乱人伦电影| 性一交一乱一区二区洋洋av| 欧美成人精品高清在线播放| 中文在线一区| 韩日欧美一区| 欧美喷水视频| 欧美一区二区三区在线视频 | 久久久久国产一区二区三区四区 | 国产模特精品视频久久久久| 欧美与欧洲交xxxx免费观看| 亚洲国产精品va| 亚洲欧美自拍偷拍| 亚洲国产欧洲综合997久久| 欧美日本一区| 久久国产精品99精品国产| 亚洲福利av| 久久精品久久99精品久久| 亚洲区国产区| 国产在线不卡精品| 欧美日韩国产大片| 久久性天堂网| 亚洲午夜在线视频| 亚洲人久久久| 久久综合中文色婷婷| 午夜精品久久久久久久男人的天堂 | 在线一区日本视频| 依依成人综合视频| 国产精品呻吟| 欧美激情导航| 久久久亚洲综合| 亚洲欧美成人一区二区在线电影| 亚洲国内自拍| 欧美国产高清| 麻豆精品视频| 久久久天天操| 久久久xxx| 欧美亚洲免费高清在线观看| 国产精品99久久久久久www| 亚洲第一区在线| 国产夜色精品一区二区av| 国产精品第一区| 欧美日韩一区二区在线| 欧美伦理91| 欧美国产日本韩| 欧美高清视频免费观看| 美女精品视频一区| 久久婷婷人人澡人人喊人人爽| 亚洲欧美在线播放| 亚洲欧美激情在线视频| 中日韩视频在线观看| 亚洲精品少妇网址| 亚洲人成人一区二区在线观看| 女女同性精品视频| 欧美激情第9页| 免费观看不卡av| 免费在线观看精品| 欧美成人午夜| 亚洲国产免费看| 久久精品一本| 好男人免费精品视频| 国内精品亚洲| 亚洲国产一区二区三区青草影视| 亚洲电影在线播放| 91久久精品网| 欧美成人黄色小视频| 99精品99| 日韩视频精品| 亚洲资源在线观看| 亚洲字幕一区二区| 久久精品91| 免费亚洲电影在线| 在线视频精品一| 亚洲午夜激情| 欧美有码视频| 模特精品裸拍一区| 欧美人成在线| 国产精品日韩精品欧美在线| 国产伦精品一区二区三区高清版| 国产视频在线观看一区| 1769国内精品视频在线播放| 亚洲精品一二区| 欧美一区二区三区婷婷月色| 久久字幕精品一区| 91久久夜色精品国产网站| 中国av一区| 鲁大师成人一区二区三区| 欧美日本在线一区| 国产日韩精品一区二区三区| 在线日本成人| 亚洲一区二区三区高清 | 激情五月***国产精品| 亚洲经典一区| 久久国产手机看片| 亚洲人被黑人高潮完整版| 午夜精品美女自拍福到在线| 久热精品在线视频| 国产精品国产a级| 亚洲黄一区二区三区| 欧美一区精品| 亚洲精品免费在线| 久久精品99无色码中文字幕 | 久久久久www| 欧美视频一区| 亚洲青色在线| 久久综合电影一区| 亚洲视频一二三| 欧美高清视频一区二区三区在线观看 | 欧美日韩国产综合一区二区| 国产又爽又黄的激情精品视频| 亚洲精品乱码久久久久久蜜桃91| 欧美与欧洲交xxxx免费观看| 亚洲免费不卡| 欧美日韩国产小视频在线观看| 可以免费看不卡的av网站| 欧美一级久久|