![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |
#include <SFXXMLDocument.hpp>
class SFXXMLDocument : public SFXXMLNode;
SFMTYPEDEFCLASS(SFXXMLDocument)


Document ノード (SFXXMLDocument) は、 XML 文書の文書を保持します。
![]() |
注意 |
|---|---|
| Document ノードは、DOM ツリーで最上位に位置するルート ノードです。 | |
![]() |
注意 |
|---|---|
| ノードを生成するための SFXXMLDocument::CreateTextNode 関数や SFXXMLDocument::CreateElement 関数などは Document ノード(SFXXMLDocument) からしか使えません。 | |
SFXXMLNode | SFXXMLAttribute | SFXXMLCDATASection | SFXXMLComment | SFXXMLDocumentFragment | SFXXMLDocumentType | SFXXMLElement | SFXXMLEntity | SFXXMLEntityReference | SFXXMLNotation | SFXXMLProcessingInstruction | SFXXMLText
| コンストラクタ/デストラクタ |
|---|
|
SFXXMLDocument( Void ) SFXXMLDocument クラスのコンストラクタです。
|
|
~SFXXMLDocument( Void ) SFXXMLDocument クラスのデストラクタです。
|
| 型 |
|---|
|
DOMNamedNodeMap
(SFXXMLNode から継承)
複数の DOM ノードを名前で管理するためのクラスです。
|
|
DOMNodeList
(SFXXMLNode から継承)
複数の DOM ノードをリスト形式で管理するためのクラスです。
|
|
NodeType
(SFXXMLNode から継承)
ノード タイプの数値です。
|
[ public, explicit ] SFXXMLDocument(Void);
[ public, virtual ] virtual ~SFXXMLDocument(Void);
[ public, virtual ] SFCError AppendChild( SFXXMLNodeConstPtr newchild // 追加するノード );
newchild ノードをコピーせずにそのまま追加します。
newchild ノードが別の DOM ツリー内に存在する場合、その DOM ツリー内からは削除されます。
[ public, virtual ] SFCError CloneNode( SFXXMLNodeHandle clonenode // コピー先のノード(Handle 型) Bool deep // 子ノードが再帰的にコピーされるかどうか );
コピー先ノードを指定します。
true の場合、子ノードを再帰的にコピーします。
false の場合、ノード自身だけをコピーします。
[ public ] SFXXMLAttributePtr CreateAttribute( SFXAnsiStringConstRef name // 属性の名前 SFXAnsiStringConstRef value // 属性の値 );
Attribute ノード(SFXXMLAttribute)、または null を返します。
修飾名と名前空間 URI を持つ Attribute ノードを作成するには、 SFXXMLDocument::CreateAttributeNS 関数を使います。
作成した Attribute ノードを Element ノード ( SFXXMLElement ) に設定するには、 SFXXMLElement::SetAttributeNode 関数、または、 SFXXMLElement::SetAttribute 関数を使います。
// Attribute ノードを作成する ( 属性値も設定する ) SFXXMLAttributePtr atti = document.CreateAt tribute("ISBN", "4-7741-1616-5"); // Attribute ノードを Element ノードに設定する book->SetAttributeNode(atti);
SFXXMLElement::SetAttributeNode | SFXXMLElement::SetAttribute | SFXXMLDocument::CreateAttributeNS | SFXXMLAttribute | SFXXMLElement | SFXXMLNode
[ public ] SFXXMLAttributePtr CreateAttributeNS( SFXAnsiStringConstRef name // 修飾名 SFXAnsiStringConstRef namespaceURI // 名前空間 URI );
Attribute ノード( SFXXMLAttribute )、または null を返します。
// 修飾名と名前空間 URI を持つ Attribute ノードを作成する SFXXMLAttributePtr atti = document.CreateAttributeNS("book:isbn","http://www.w3.org/book"); // 属性値を設定する atti->SetValue("4-7741-1616-5"); // Attribute ノードを Element ノードに設定する book->SetAttributeNode(atti);
SFXXMLElement::SetAttributeNode | SFXXMLElement::SetAttribute | SFXXMLDocument::CreateAttribute | SFXXMLAttribute | SFXXMLElement | SFXXMLNode
[ public ] SFXXMLCDATASectionPtr CreateCDATASection( SFXAnsiStringConstRef data // CDATASection に格納する文字列 );
CDATASection ノード( SFXXMLCDATASection )、または null を返します。
<![CDATA[<AUTHOR age="5">Sophia Cradle</AUTHOR>]]> という CDATASection ノードを作成します。
// CDATASection ノードを作成する book->SetAttributeNode(atti); SFXXMLCDATASectionPtr cdata = document.CreateCDATASection("<AUTHOR age=\"5\">Sophia Cradle</AUTHOR>"); // CDATASection ノードを Element ノードに設定する book->SetAttributeNode(atti); boot->AppendChild(SFXXMLNodePtr(cdata));
[ public ] SFXXMLCommentPtr CreateComment( SFXAnsiStringConstRef data // このノードに格納する文字列 );
Comment ノード( SFXXMLComment )、または null を返します。
「this a test code!」 という内容の Comment ノードを作成します。
// Comment ノードを作成する SFXXMLCommentPtr cdata = document.CreateComment("this a test code!"); // Comment ノードを Element ノードに追加する boot->AppendChild(SFXXMLNodePtr(cdata));
[ public ] SFXXMLDocumentFragmentPtr CreateDocumentFragment(Void);
DocumentFragment ノード( SFXXMLDocumentFragment )、または null を返します。
[ public ] SFXXMLDocumentTypePtr CreateDocumentType( SFXAnsiStringConstRef name // 作成する文書型の修飾名 SFXAnsiStringConstRef publicId // 外部サブセットの公開識別子 SFXAnsiStringConstRef systemId // 外部サブセットのシステム識別子 );
DocumentType ノード( SFXXMLDocumentType )、または null を返します。
<!DOCTYPE boot PUBLIC "public-boot.dtd"> という DocumentType ノードを作成します。
// DocumentType ノードを作成する SFXXMLDocumentTypePtr doctype = document.CreateDocumentType("boot","public-boot.dtd",""); // DocumentType ノードを追加する document.AppendChild(SFXXMLNodePtr(doctype));
[ public ] SFXXMLElementPtr CreateElement( SFXAnsiStringConstRef name // Element ノードの名前 );
Element ノード( SFXXMLElement )、または null を返します。
修飾名と名前空間 URI を持つ Element ノードを作成するには、SFXXMLDocument::CreateElementNS 関数を使います。
[ public ] SFXXMLElementPtr CreateElementNS( SFXAnsiStringConstRef name //要素の修飾名 SFXAnsiStringConstRef namespaceURI //作成する要素の名前空間 URI );
Element ノード( SFXXMLElement )、または null を返します。
<xsd:node xmlns:xsd="http://www.w3.org/xsd">node element</xsd:node> という Element ノードを作成します。
// Element ノードを作成する ( URI は http://www.w3.org/xsd ) SFXXMLElementPtr element = document.CreateElementNS("xsd:node", "http://www.w3.org/xsd"); // Element ノードにテキストを設定する element->SetText("node element"); // Element ノードを追加する boot->AppendChild(element);
[ public ] SFXXMLEntityPtr CreateEntity( SFXAnsiStringConstRef name // エンティティの名前 );
Entity ノード( SFXXMLEntity )、または null を返します。
作成した Entity ノードは DocumentType ノードに追加します。 Entity ノードに対して SFXXMLDocument::AppendChild 関数は使えません。
<!ENTITY copyright "Copyright 2007, Sophia. All rights reserved"> という Entity ノードを作成します。
// Entity ノードを作成する SFXXMLEntityPtr entity = document.CreateEntity("copyright \"Copyright 2007, Sophia. All rights reserved\""); // Entity ノードを追加する doctype->GetEntities()->SetNamedItem(entity);
[ public ] SFXXMLEntityReferencePtr CreateEntityReference( SFXAnsiStringConstRef name // 参照するエンティティの名前 );
EntityReference ノード( SFXXMLEntityReference )、または null を返します。
"copyright" に対する EntityReference ノードを作成します。
// EntityReference ノードを作成する SFXXMLEntityReferencePtr entityref = document.CreateEntityReference("copyright"); // EntityReference ノードを追加する boot->AppendChild(SFXXMLNodePtr(entityref));
[ public ] SFXXMLNotationPtr CreateNotation( SFXAnsiStringConstRef name // 記法の名前 );
Notation ノード( SFXXMLNotation )、または null を返します。
作成した Notation ノードは DocumentType ノードに設定します。 Notation ノードに対して SFXXMLDocument::AppendChild 関数は使えません。
<!NOTATION XLS PUBLIC "http://www.microsoft.com/office/excel/"> という Notation ノードを作成します。
// Notation ノードを作成する SFXXMLNotationPtr notation = document.CreateNotation("XLS"); // PUBLIC 公開識別子を設定する notation->SetPublicID("http://www.microsoft.com/office/excel/"); // Notation ノードを設定する doctype->GetNotations()->SetNamedItem(notation);
[ public ] SFXXMLProcessingInstructionPtr CreateProcessingInstruction( SFXAnsiStringConstRef target // 処理命令のターゲット SFXAnsiStringConstRef data // 処理命令の内容 );
ProcessingInstruction ノード( SFXXMLProcessingInstruction )、または null を返します。
<?xml-stylesheet type="text/xsl" href="viewer.xsl"?> という ProcessingInstruction ノードを作成します。
// ProcessingInstruction ノードを作成する SFXXMLProcessingInstructionPtr pi = document.CreateProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"viewer.xsl\"); // ProcessingInstruction ノードを追加する document.AppendChild(pi);
[ public ] SFXXMLTextPtr CreateTextNode( SFXAnsiStringConstRef data // テキスト );
Text ノード ( SFXXMLText )、または null を返します。
// Text ノードを作成し、追加する
element->AppendChild(SFXXMLNodePtr(document.CreateTextNode("新たなテキスト ノード")));
[ public, virtual, const ] DOMNodeListPtr GetChildNodes(Void);
指定したノードのすべての子ノードを SFXXMLNode::DOMNodeList へのポインタとして返します。子ノードがないときは null を返します。
![]() |
注意 |
|---|---|
| SFXXMLNode::DOMNodeList の各要素は、SFXXMLNode 型へのポインタです。 | |
[ public, const ] SFXXMLElementPtr GetDocumentElement(Void);
// Document ノード ( ルート ノード )を取得する
SFXXMLElementPtr root = document.GetDocumentElement();
[ public, const ] SFXXMLDocumentTypePtr GetDocumentType(Void);
[ public, const ]
DOMNodeListPtr GetElementsByTagName(
SFXAnsiStringConstRef tag // タグ名
SFXXMLNodeConstPtr root = null // 親ノード
);大文字と小文字は区別されます。
root 引数に null が渡されたとき: ドキュメント全体を検索して、指定したタグ名を持つ Element ノードのリストを返します。
root 引数にノードが渡されたとき: 渡されたノードの子孫ノードを検索して、指定したタグ名を持つ Element ノードのリストを返します。
タグ名が一致するすべての要素とする SFXXMLNode::DOMNodeList を返します。
指定したタグ名を持つすべての Element ノードを SFXXMLNode::DOMNodeList に格納して取得します。
ノード タイプを指定する場合は、SFXXMLDocument::GetListsByTypeFilter 関数を使います。
![]() |
注意 |
|---|---|
| SFXXMLElement::GetElementsByTagName 関数は、内部的に root 引数に特定のノードを指定して SFXXMLDocument::GetElementsByTagName 関数を呼び出しています。 | |
SFXXMLDocument::GetListsByTypeFilter | SFXXMLElement::GetElementsByTagName | SFXXMLElement | SFXXMLNode | SFXXMLNode::DOMNodeList
[ public, const ] ACharConstPtr GetEncoding(Void);
エンコーディングが設定されていないときは null を返します。
[ public, virtual, const ] SFXXMLNodePtr GetFirstChild(Void);
最初の子ノードを返します。子ノードがないときは null を返します。
SFXXMLDOMParser parser; // DOM パーサー // DOM ツリーのルート ノードを取得する SFXXMLDocumentPtr root = parser.GetDocument(); // XML 文書のルート要素(DOM ツリーのルート ノードの最初の子ノード)を取得する SFXXMLNodePtr child = root->GetFirstChild();
[ public, virtual, const ] SFXXMLNodePtr GetLastChild(Void);
最後の子ノードを返します。子ノードがないときは null を返します。
[ public, const ]
DOMNodeListPtr GetListsByTypeFilter(
NodeType type // ノード タイプ
);ノード タイプ(nodeType 属性)が一致する、すべてのノードを SFXXMLNode::DOMNodeList で返します。
指定したノード タイプ(nodeType 属性)を持つすべてのノードを SFXXMLNode::DOMNodeList で取得します。 例えば、引数に COMMENT_NODE を指定した場合、すべての Comment ノードを返します。
タグ名を指定する場合は、SFXXMLDocument::GetElementsByTagName 関数を使用します。
// ノード タイプが "ELEMENT_NODE" である、すべてのノードを取得する SFXXMLNode::DOMNodeListPtr list = root->GetListsByTypeFilter(ELEMENT_NODE); if (list) { // 各ノードを取得する SFXXMLNode::DOMNodeList::Enumerator iter = list->GetFirstEnumerator(); while (iter.HasNext()) { SFXXMLNodePtr child = iter.GetNext(); if(child->GetNodeType() == SFXXMLNode::ELEMENT_NODE); ... } }
SFXXMLNode::NodeType | SFXXMLDocument::GetElementsByTagName| SFXXMLNode | SFXXMLNode::DOMNodeList
[ public, virtual, const ] ACharConstPtr GetNodeName(Void);
文字列 "#document" を返します。
[ public, virtual, const ] NodeType GetNodeType(Void);
DOCUMENT_NODE を返します。
[ public, const ] Bool GetStandalone(Void);
[ public, const ] ACharConstPtr GetVersion(Void);
[ public, virtual, const ] Bool HasChildNodes(Void);
[ public, virtual ] SFCError InsertBefore( SFXXMLNodeConstPtr newchild // 挿入するノード SFXXMLNodeConstPtr refchild // 参照ノード、このノードの直前に挿入される );
[ public, virtual ] SFCError RemoveChild( SFXXMLNodeConstPtr oldchild // 削除する子ノード );
[ public, virtual ] SFCError ReplaceChild( SFXXMLNodeConstPtr newchild // 置換後ノード SFXXMLNodeConstPtr oldchild // 置換前ノード );
[ public ] SFCError Save( SFXAnsiStringConstRef output // ファイル名 Bool indent = true // インデントするかどうか );
[ public ] SFCError Save( SFXPathConstRef output // ファイルパス Bool indent = true // インデントするかどうか );
[ public ] SFCError Save( SFXOutputStreamRef output // 出力ストリーム Bool indent = true // インデントするかどうか );
ファイル パスはデフォルトではアプリケーションのホーム フォルダになります。
[ public ] Void SetDocumentType( SFXXMLDocumentTypeConstPtr doctype // DocumentType ノード );
[ public ] Void SetEncoding( SFXAnsiStringConstRef encoding // 設定するエンコーディング );
[ public ] Void SetVersion( SFXAnsiStringConstRef version // バージョン番号 );
|
Copyright (C) 2002 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|