Document裏說:
Features:
- 可以自行決定是否使用STL。TinyXml只使用STL的string class,但是有implement自己的 string class。所以可以決定要使用STL或是TinyXml自己的版本。
#define TIXML_USE_STL
- 支援UTF-8,TinyXml會自動偵測XML file使用的語系:
- lead byte 有0xef,0xbb,0xbf
- XML file中declaration tag有宣告encoding = "UTF-8"
- XML file中有declararion tag。
- XML file中declaration tag宣告encoding 不是UTF-8,TinyXML會用legacy Mode。
- Entities ,TinyXML認識以下意義
& &
< <
> >
" "
' ' - streams : 當使用STL時,可以使用stream operator作file operation
- White Space:提供SetCondenseWhiteSpace(bool),決定是否將多個space縮減成一個。
- Handles : 這個很方便,當要由XML tree中某個entity 作操作時,常常要由root以下,一個一個檢查是不是NULL,程式寫起來很醜:
TiXmlElement* root = document.FirstChildElement( "Document" );
但是TinyXml 可以用
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.TiXmlHandle docHandle( &document );
來作
TiXmlElement* child2 = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", 1 ).Element();
if ( child2 )
{
// do something useful - Row, Columm Tracking : 有時候需要知道目前的entiry是在XML file中的那一行,那一列,例如:回報parse error。TinyXML提供TiXmlBase::Row(), Columm()取得這個資料
沒有留言:
張貼留言