前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXXMLText
[XML] Text ノードを表すクラスです。
#include <SFXXMLText.hpp>
class SFXXMLText : public SFXXMLNode;
SFMTYPEDEFCLASS(SFXXMLText)

継承図

SFXXMLText クラスの継承図

協調図

SFXXMLText クラスの協調図

解説

Text ノード(SFXXMLText) は、 Element ノード(SFXXMLElement) または Attribute ノード (SFXXMLAttribute) の内容(文字列)を保持します。

要素の内容にマークアップがない場合、 その内容は Element ノードの唯一の子ノードである Text ノードに含まれます。

マークアップがある場合は、 その内容を要素、コメントなどの情報項目で構文解析し、 Text ノードを含む ノード ツリーに変換します。 Element または Attribute ノードには、そのノード ツリーが設定されます。

Text ノードでは、以下の 5 つのケースに関して文字をエスケープします。

  • コメントと処理命令と CDATA セクション以外の場所で「 < 」が含まれる
  • コメントと処理命令と CDATA セクション以外の場所で「 & 」が含まれる
  • CDATA セクションで「 ]]> 」が含まれる
  • 属性値の中の値が " で囲まれる場合に属性値の中に「 " 」が含まれる
  • 属性値の中の値が ' で囲まれる場合に属性値の中に「 ' 」が含まれる

表 230. エスケープが必要な文字

文字 エスケープシーケンス
< &lt;
& &amp;
> &gt;
" &quot;
' &apos;
[Note] 注意

空白文字を使用して DOM ツリーをインデントするには SFXXMLDOMParser::SetDoIndent 関数を使います。 DOM ツリーがインデントされる場合、 これらの空白文字は Text ノードに反映されます。

参照

SFXXMLNode | SFXXMLDocument | SFXXMLElement | SFXXMLAttribute | SFXXMLCDATASection | SFXXMLComment

メンバ

コンストラクタ/デストラクタ
SFXXMLText( SFXXMLDocumentPtr owner , SFXAnsiStringConstRef name )
SFXXMLText クラスのコンストラクタです。
SFXXMLText( SFXXMLTextConstRef other )
SFXXMLText クラスのコンストラクタです。
~SFXXMLText( Void )
SFXXMLText クラスのデストラクタです。
パブリック関数
Void AppendData( ACharConstPtr data )
テキストをノードの値(nodeValue 属性値)の末尾に追加します。
SFCError CloneNode( SFXXMLNodeHandle clonenode , Bool deep )
ノードのコピーを作成します。
Void DeleteData( SInt32 offset , SInt32 count )
ノードの値(nodeValue 属性値)を一部削除します。
ACharConstPtr GetData( Void )
ノードの値(nodeValue 属性値)を取得します。
SInt32 GetLength( Void )
テキストの長さ(文字数)を取得します。
SFXXMLNodePtr GetNextSibling( Void )
次の兄弟ノードを取得します。
ACharConstPtr GetNodeName( Void )
ノードの名前(nodeName 属性値)を取得します。
NodeType GetNodeType( Void )
ノードタイプ(nodeType 属性値)を取得します。
ACharConstPtr GetNodeValue( Void )
ノードの値(nodeValue 属性値)を取得します。
SFXXMLNodePtr GetParentNode( Void )
親ノードを取得します。
SFXXMLNodePtr GetPreviousSibling( Void )
前の兄弟ノードを取得します。
Void InsertData( SInt32 offset , ACharConstPtr data )
テキストを挿入します。
Void ReplaceData( SInt32 offset , SInt32 count , ACharConstPtr data )
テキストを置換します。
Void SetData( ACharConstPtr data )
ノードの値(nodeValue 属性値)を設定します。
Void SetNodeValue( ACharConstPtr value )
ノードの値(nodeValue 属性値)を設定します。
SFXXMLTextPtr SplitText( SInt32 offset )
2 つの Text ノードに分割します。
SFXAnsiString SubstringData( SInt32 offset , SInt32 count )
部分文字列を取得します。
SFCError AppendChild( SFXXMLNodeConstPtr newchild ) (SFXXMLNode から継承)
【無効】子ノードの最後にノードを追加します。
Bool EqualNode( SFXXMLNodeConstPtr arg ) (SFXXMLNode から継承)
指定されたノードと同等かどうかを判定します。
DOMNodeListPtr GetChildNodes( Void ) (SFXXMLNode から継承)
【無効】すべての子ノードを取得します。
SFXXMLNodePtr GetFirstChild( Void ) (SFXXMLNode から継承)
【無効】最初の子ノードを取得します。
SFXXMLNodePtr GetLastChild( Void ) (SFXXMLNode から継承)
【無効】最後の子ノードを取得します。
SFXAnsiString GetText( Void ) (SFXXMLNode から継承)
ノードテキストを取得します。
Bool HasChildNodes( Void ) (SFXXMLNode から継承)
【無効】子ノードを持つかどうかを判定します。
SFCError InsertBefore( SFXXMLNodeConstPtr newchild , SFXXMLNodeConstPtr refchild ) (SFXXMLNode から継承)
【無効】ノードを挿入します。
Bool IsSameNode( SFXXMLNodeConstPtr other ) (SFXXMLNode から継承)
指定されたノードと同一であるか判定します。
SFCError RemoveChild( SFXXMLNodeConstPtr oldchild ) (SFXXMLNode から継承)
【無効】子孫ノードも含めて子ノードを削除します。
SFCError ReplaceChild( SFXXMLNodeConstPtr newchild , SFXXMLNodeConstPtr oldchild ) (SFXXMLNode から継承)
【無効】子ノードを置換します。
SFCError SetText( SFXAnsiStringConstRef text ) (SFXXMLNode から継承)
ノードテキストを設定します。
DOMNamedNodeMap (SFXXMLNode から継承)
複数の DOM ノードを名前またはローカル名と名前空間 URI で管理するためのクラスです。
DOMNodeList (SFXXMLNode から継承)
複数の DOM ノードをリスト形式で管理するためのクラスです。
NodeType (SFXXMLNode から継承)
ノードタイプを表す定数です。

SFXXMLText::SFXXMLText
SFXXMLText クラスのコンストラクタです。
[ public, explicit ]
SFXXMLText(
    SFXXMLDocumentPtr owner      // ドキュメントツリーのルート
    SFXAnsiStringConstRef name   // テキストの内容
);
[ public, explicit ]
SFXXMLText(
    SFXXMLTextConstRef other   // Text ノード
);

解説

このコンストラクタは、指定された値をこのノードに設定します。

引数には、このノードを所有するドキュメントツリーのルート(SFXXMLDocument)とテキストの内容、 または別の Text ノードのいずれかを指定することが可能です。

[Note] 注意

name 引数に指定されるテキストの内容は、 SFXXMLText::GetNodeValue 関数で取得できる、このノードの nodeValue 属性として設定されます。

参照

SFXXMLText::GetNodeValue | SFXXMLDocument


SFXXMLText::~SFXXMLText
SFXXMLText クラスのデストラクタです。
[ public, virtual ]
virtual ~SFXXMLText(Void);

解説

このデストラクタは、何も行いません。


SFXXMLText::AppendData
テキストをノードの値(nodeValue 属性値)の末尾に追加します。
[ public ]
Void AppendData(
    ACharConstPtr data   // 追加するテキスト(文字列)
);

解説

この関数は、このノードの値(nodeValue 属性値)であるテキストの末尾に指定されたテキスト(文字列)を追加します。

Text ノードの場合、nodeValue 属性値はテキスト(文字列)です。

参照

SFXXMLText::InsertData | SFXXMLText::DeleteData | SFXXMLText::ReplaceData | SFXXMLText::SetNodeValue | SFXXMLText::SetData | SFXXMLText::SFXXMLText


SFXXMLText::CloneNode
ノードのコピーを作成します。
[ public, virtual ]
SFCError CloneNode(
    SFXXMLNodeHandle clonenode   // コピー先のノード(Handle 型)
    Bool deep                    // 子ノードを再帰的にコピーするかどうか【無効】
);

引数

clonenode

コピー先ノードを指定します。

deep

この引数は無効です。

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • 失敗したとき: SFERR_FAILED

解説

この関数は、このノードのコピーを作成し、clonenode 引数に返します。

[Note] 注意

Text ノードは子ノードを持たないので、 deep 引数は無効です。true を指定しても、false を指定しても結果は同じです。

参照

SFXXMLText::SFXXMLText | SFXXMLNode::CloneNode | SFXXMLNode


SFXXMLText::DeleteData
ノードの値(nodeValue 属性値)を一部削除します。
[ public ]
Void DeleteData(
    SInt32 offset   // 削除の開始位置
    SInt32 count    // 削除するテキスト(文字列)の長さ
);

解説

この関数は、このノードの値(nodeValue 属性値)であるテキスト内の offset 引数に指定された位置から count 引数に指定された長さの部分テキスト(部分文字列)を削除します。

Text ノードの場合、nodeValue 属性値はテキスト(文字列)です。

参照

SFXXMLText::InsertData | SFXXMLText::AppendData | SFXXMLText::ReplaceData | SFXXMLText::SetNodeValue | SFXXMLText::SetData | SFXXMLText::SFXXMLText


SFXXMLText::GetData
ノードの値(nodeValue 属性値)を取得します。
[ public, const ]
ACharConstPtr GetData(Void);

戻り値

ノードの値(nodeValue 属性値)

解説

この関数は、このノードの値(nodeValue 属性値)を取得します。

Text ノードの場合、nodeValue 属性値はテキスト(文字列)です。

[Note] 注意

テキスト(文字列)は、SFXXMLText::SFXXMLText コンストラクタの name 引数、 またはSFXXMLText::SetData 関数の data 引数で設定します。

[Note] 注意

SFXXMLText::GetNodeValue 関数を呼び出すのと同等です。

使用例

<?xml version="1.0" encoding="Shift_JIS" ?>
<root>
 <title>文字列の追加・挿入・置換・削除</title>
 <data>これはテストですXXX</data>
</root>

// Text ノードを取得する
SFXXMLTextPtr text = SFXXMLTextPtr(data->GetFirstChild());

// Text ノードの値を取得する
TRACE(text->GetData());          // "これはテストですXXX"
    
// 文字数を取得する
TRACE("文字数は: %d", text->GetLength());
    
// テキストを追加する
text->AppendData("(06/02/22)");     // "これはテストですXXX(06/02/22)"
    
// テキストを挿入する
text->InsertData(6, "文字列編集の");     // "これは文字列編集のテストですXXX(06/02/22)"
    
// "テスト"を"実験"に置換する
text->ReplaceData(18, 6, "実験");     // "これは文字列編集の実験ですXXX(06/02/22)"
    
// 最後のテキストを一部削除する
text->DeleteData(26,13);     // "これは文字列編集の実験です"
    
// テキストの一部を取得する
SFXAnsiString str = text->SubstringData(6, 6);     // "文字列"
    
// Text ノードを分割する
SFXXMLTextPtr splittext = text->SplitText(6);     // "文字列編集の実験です"
SFXAnsiString(splittext->GetData()).Equals("文字列編集の実験です");
    

参照

SFXXMLText::SetData | SFXXMLText::GetNodeValue | SFXXMLNode::GetNodeValue | SFXXMLNode


SFXXMLText::GetLength
テキストの長さ(文字数)を取得します。
[ public, const ]
SInt32 GetLength(Void);

戻り値

テキストの長さ

解説

この関数は、このノードの値(nodeValue 属性値)であるテキストの長さ(文字数)を取得します。

Text ノードの場合、nodeValue 属性値はテキスト(文字列)です。

参照

SFXXMLText::InsertData | SFXXMLText::AppendData | SFXXMLText::DeleteData | SFXXMLText::ReplaceData | SFXXMLText::SetNodeValue | SFXXMLText::SetData | SFXXMLText::SFXXMLText


SFXXMLText::GetNextSibling
次の兄弟ノードを取得します。
[ public, virtual, const ]
SFXXMLNodePtr GetNextSibling(Void);

戻り値

次の兄弟ノード

解説

この関数は、このノードの次の兄弟ノードを取得します。

[Note] 注意

次の兄弟ノードが存在しない場合は null を返します。

参照

SFXXMLText::GetPreviousSibling | SFXXMLNode::GetNextSibling| SFXXMLNode::GetPreviousSibling | SFXXMLNode


SFXXMLText::GetNodeName
ノードの名前(nodeName 属性値)を取得します。
[ public, virtual, const ]
ACharConstPtr GetNodeName(Void);

戻り値

"#text"

解説

この関数は、このノードの名前(nodeName 属性値)を取得します。

Text ノードの場合、nodeName 属性値は "#text" です。

参照

SFXXMLNode::GetNodeName | SFXXMLNode


SFXXMLText::GetNodeType
ノードタイプ(nodeType 属性値)を取得します。
[ public, virtual, const ]
NodeType GetNodeType(Void);

戻り値

SFXXMLNode::TEXT_NODE

解説

この関数は、このノードのタイプ(nodeType 属性値)を取得します。

Text ノードの場合、nodeType 属性値は SFXXMLNode::TEXT_NODE です。

参照

SFXXMLNode::NodeType | SFXXMLNode::GetNodeType | SFXXMLNode


SFXXMLText::GetNodeValue
ノードの値(nodeValue 属性値)を取得します。
[ public, virtual, const ]
ACharConstPtr GetNodeValue(Void);

戻り値

ノードの値(nodeValue 属性値)

解説

この関数は、このノードの値(nodeValue 属性値)を取得します。

Text ノードの場合、nodeValue 属性値はテキスト(文字列)です。

[Note] 注意

テキスト(文字列)は、SFXXMLText::SFXXMLText コンストラクタの name 引数、 またはSFXXMLText::SetData 関数の data 引数で設定します。

[Note] 注意

SFXXMLText::GetData 関数を呼び出すのと同等です。

参照

SFXXMLText::SFXXMLText | SFXXMLText::GetData | SFXXMLText::SetData | SFXXMLNode::GetNodeValue | SFXXMLNode


SFXXMLText::GetParentNode
親ノードを取得します。
[ public, virtual, const ]
SFXXMLNodePtr GetParentNode(Void);

戻り値

親ノード

解説

この関数は、このノードの親ノードを取得します。

[Note] 注意

親ノードが存在しない場合は null を返します。

参照

SFXXMLNode::GetParentNode | SFXXMLNode


SFXXMLText::GetPreviousSibling
前の兄弟ノードを取得します。
[ public, virtual, const ]
SFXXMLNodePtr GetPreviousSibling(Void);

戻り値

前の兄弟ノード

解説

この関数は、このノードの前の兄弟ノードを取得します。

[Note] 注意

前の兄弟ノードが存在しない場合は null を返します。

参照

SFXXMLProcessingInstruction::GetNextSibling | SFXXMLNode::GetPreviousSibling | SFXXMLNode::GetNextSibling | SFXXMLNode


SFXXMLText::InsertData
テキストを挿入します。
[ public ]
Void InsertData(
    SInt32 offset        // 開始位置 
    ACharConstPtr data   // 挿入するテキスト
);

解説

この関数は、このノードの値(nodeValue 属性値)であるテキスト内の offset 引数に指定された位置に data 引数に指定されたテキスト(文字列)を挿入します。

Text ノードの場合、nodeValue 属性値はテキスト(文字列)です。

参照

SFXXMLText::DeleteData | SFXXMLText::AppendData | SFXXMLText::ReplaceData | SFXXMLText::SetNodeValue | SFXXMLText::SetData | SFXXMLText::SFXXMLText


SFXXMLText::ReplaceData
テキストを置換します。
[ public ]
Void ReplaceData(
    SInt32 offset        // 置換の開始位置
    SInt32 count         // 置換するテキスト(文字列)の長さ
    ACharConstPtr data   // 置換するテキスト
);

解説

この関数は、このノードの値(nodeValue 属性値)であるテキスト内の offset 引数に指定された位置から count 引数に指定された長さのテキスト(文字列)を data 引数に指定されたテキスト(文字列)で置き換えます。

Text ノードの場合、nodeValue 属性値はテキスト(文字列)です。

[Caution] 注意

offset と count の合計が、このノードの値(nodeValue 属性値)であるテキスの末尾を越えた場合、 テキストの末尾までのテキスト(文字列)が data 引数に指定されたテキスト(文字列)で置換されます。

参照

SFXXMLText::DeleteData | SFXXMLText::AppendData | SFXXMLText::InsertData | SFXXMLText::SetNodeValue | SFXXMLText::SetData | SFXXMLText::SFXXMLText


SFXXMLText::SetData
ノードの値(nodeValue 属性値)を設定します。
[ public ]
Void SetData(
    ACharConstPtr data   // テキスト
);

解説

この関数は、このノードの値(nodeValue 属性値)を指定された値に設定します。

Text ノードの場合、nodeValue 属性値はテキスト(文字列)です。

[Note] 注意

SFXXMLText::SetNodeValue 関数を呼び出すのと同等です。

参照

SFXXMLText::SetNodeValue | SFXXMLText::SFXXMLText | SFXXMLText::GetData


SFXXMLText::SetNodeValue
ノードの値(nodeValue 属性値)を設定します。
[ public, virtual ]
Void SetNodeValue(
    ACharConstPtr value   // テキスト
);

解説

この関数は、このノードの値(nodeValue 属性値)を指定された値に設定します。

Text ノードの場合、nodeValue 属性値はテキスト(文字列)です。

[Note] 注意

SFXXMLText::SetData 関数を呼び出すのと同等です。

参照

SFXXMLText::SetData | SFXXMLText::SFXXMLText | SFXXMLNode::SetNodeValue | SFXXMLNode


SFXXMLText::SplitText
2 つの Text ノードに分割します。
[ public ]
SFXXMLTextPtr SplitText(
    SInt32 offset   // 分割する位置
);

戻り値

新たに作成された Text ノード(作成されなかった場合は null)

解説

この関数は、この Text ノードを 2 つに分割し、新たに作成された Text ノードを返します。

具体的な処理内容は以下の通りです。、

  1. この Text ノードの nodeValue 属性値であるテキストの offset 引数に指定された位置以降のテキスト(文字列)を削除します。
  2. この Text ノードと同じ親ノードを持つ Text ノードを新たに作成し、 その nodeValue 属性値を削除したテキスト(文字列)に設定します。
  3. そして、新しく作成した Text ノードを返します。
  4. ※ offset 引数に指定された位置がこの Text ノードの nodeValue 属性値であるテキストの末尾を超える場合は、 この Text ノードは分割されず、この関数は null を返します。
[Note] 注意

offset 引数に指定される位置が分割前の Text ノードのテキストの末尾である場合、 この関数が返す Text ノードのテキストは空の文字列です。

offset 引数に指定される値が 0 である場合、 分割後、この Text ノードのテキストは空の文字列になります。 この関数が返す Text ノードのテキストは分割前にこの Text ノードに設定されていたテキストになります。

参照

SFXXMLText::SetNodeValue | SFXXMLText::SetData | SFXXMLText::SFXXMLText


SFXXMLText::SubstringData
部分文字列を取得します。
[ public, const ]
SFXAnsiString SubstringData(
    SInt32 offset   // 取り出す部分文字列の開始位置
    SInt32 count    // 部分文字列のサイズ
);

戻り値

このノードに nodeValue 属性値として設定されたテキスト内の指定された部分テキスト(部分文字列)

解説

この関数は、このノードの値(nodeValue 属性値)であるテキスト内の offset 引数に指定された位置から count 引数に指定された長さのテキスト(文字列)を 取得します。

Text ノードの場合、nodeValue 属性値はテキスト(文字列)です。

[Caution] 注意

offset と count の合計が、このノードの値(nodeValue 属性値)であるテキスの末尾を越えた場合、 テキストの末尾までのテキスト(文字列)を返します。

参照

SFXXMLText::DeleteData | SFXXMLText::AppendData | SFXXMLText::ReplaceData | SFXXMLText::InsertData | SFXXMLText::SetNodeValue | SFXXMLText::SetData | SFXXMLText::SFXXMLText