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

継承図

SFXXMLElement クラスの継承図

協調図

SFXXMLElement クラスの協調図

解説

Element ノード(SFXXMLElement)は、 XML 文書の要素を保持します。

Element ノードには、SFXXMLElement::SetAttributeNodeSFXXMLElement::SetAttribute 関数を使用して、 属性(SFXXMLAttribute)をプロパティとして設定することができます。

Element ノードに設定された属性は、 SFXXMLElement::GetAttributeNodeSFXXMLElement::GetAttributes 関数を使用して取得できます。

参照

SFXXMLNode | SFXXMLAttribute | SFXXMLDocument | SFXXMLDocumentFragment

メンバ

コンストラクタ/デストラクタ
SFXXMLElement( SFXXMLDocumentPtr owner , SFXAnsiStringConstRef name )
SFXXMLElement クラスのコンストラクタです。
SFXXMLElement( SFXXMLDocumentPtr owner , SFXAnsiStringConstRef name , SFXAnsiStringConstRef namespaceURI )
SFXXMLElement クラスのコンストラクタです。
SFXXMLElement( SFXXMLElementConstRef other , Bool deep = false )
SFXXMLElement クラスのコンストラクタです。
~SFXXMLElement( Void )
SFXXMLElement クラスのデストラクタです。
パブリック関数
SFCError AppendChild( SFXXMLNodeConstPtr newchild )
子ノードの最後にノードを追加します。
SFCError CloneNode( SFXXMLNodeHandle clonenode , Bool deep )
ノードのコピーを作成します。
Bool EqualNode( SFXXMLNodeConstPtr arg )
指定したノードと同等かどうかを判定します。
ACharConstPtr GetAttribute( SFXAnsiStringConstRef name )
指定された名前を持つ属性に設定されている値(属性値)を取得します。
ACharConstPtr GetAttributeNS( SFXAnsiStringConstRef localname , SFXAnsiStringConstRef namespaceURI )
指定されたローカル名と名前空間 URI を持つ属性に設定されている値(属性値)を取得します。
SFXXMLAttributePtr GetAttributeNode( SFXAnsiStringConstRef name )
指定された名前を持つ Attribute ノードを取得します。
SFXXMLAttributePtr GetAttributeNodeNS( SFXAnsiStringConstRef localname , SFXAnsiStringConstRef namespaceURI )
指定されたローカル名と名前空間 URI を持つ Attribute ノードを取得します。
DOMNamedNodeMapPtr GetAttributes( Void )
Element ノードに含まれるすべての Attribute ノードを取得します。
DOMNodeListPtr GetChildNodes( Void )
すべての子ノードを取得します。
DOMNodeListPtr GetElementsByTagName( SFXAnsiStringConstRef name )
この Element ノードを所有するドキュメントツリー内で指定されたタグ名を持つ Element ノードをすべて取得します。
DOMNodeListPtr GetElementsByTagNameNS( SFXAnsiStringConstRef localname , SFXAnsiStringConstRef namespaceURI )
この Element ノードを所有するドキュメントツリー内で指定されたローカル名と名前空間 URI を持つ Element ノードをすべて取得します。
SFXXMLNodePtr GetFirstChild( Void )
最初の子ノードを取得します。
SFXXMLNodePtr GetLastChild( Void )
最後の子ノードを取得します。
ACharConstPtr GetLocalName( Void )
ノードの名前(nodeName 属性値)のローカル名を取得します。
ACharConstPtr GetName( Void )
ノードの名前(nodeName 属性値)を取得します。
ACharConstPtr GetNamespaceURI( Void )
名前空間 URI を取得します。
SFXXMLNodePtr GetNextSibling( Void )
次の兄弟ノードを取得します。
ACharConstPtr GetNodeName( Void )
ノードの名前(nodeName 属性値)を取得します。
NodeType GetNodeType( Void )
ノードタイプ(nodeType 属性値)を取得します。
SFXXMLNodePtr GetParentNode( Void )
親ノードを取得します。
ACharConstPtr GetPrefix( Void )
名前空間接頭辞を取得します。
SFXXMLNodePtr GetPreviousSibling( Void )
前の兄弟ノードを取得します。
Bool HasAttribute( SFXAnsiStringConstRef name )
指定された名前を持つ属性が設定されているか判定します。
Bool HasAttributeNS( SFXAnsiStringConstRef localname , SFXAnsiStringConstRef namespaceURI )
指定されたローカル名と名前空間 URI を持つ属性が設定されているか判定します。
Bool HasAttributes( Void )
Attribute ノードが設定されているか判定します。
Bool HasChildNodes( Void )
子ノードを持つかどうか判定します。
SFCError InsertBefore( SFXXMLNodeConstPtr newchild , SFXXMLNodeConstPtr refchild )
ノードを挿入します。
Void RemoveAttribute( SFXAnsiStringConstRef name )
指定された名前を持つ属性を削除します。
Void RemoveAttributeNS( SFXAnsiStringConstRef localname , SFXAnsiStringConstRef namespaceURI )
指定されたローカル名と名前空間 URI を持つ属性を削除します。
SFXXMLAttributePtr RemoveAttributeNode( SFXXMLAttributePtr oldAttr )
指定された Attribute ノードを削除します。
SFCError RemoveChild( SFXXMLNodeConstPtr oldchild )
子孫ノードも含めて子ノードを削除します。
SFCError ReplaceChild( SFXXMLNodeConstPtr newchild , SFXXMLNodeConstPtr oldchild )
子ノードを置換します。
Void SetAttribute( SFXAnsiStringConstRef name , ACharConstPtr value )
指定された名前を持つ属性に指定された値(属性値)を設定します。
Void SetAttributeNS( SFXAnsiStringConstRef localname , SFXAnsiStringConstRef namespaceURI , ACharConstPtr value )
指定されたローカル名と名前空間 URI を持つ属性に指定された値(属性値)を設定します。
SFCError SetAttributeNode( SFXXMLAttributePtr newAttr )
指定された Attribute ノードを設定します。
SFCError SetAttributeNodeNS( SFXXMLAttributePtr newAttr )
指定された Attribute ノードを設定します。
ACharConstPtr GetNodeValue( Void ) (SFXXMLNode から継承)
ノードの値(nodeValue 属性値)を取得します。
SFXAnsiString GetText( Void ) (SFXXMLNode から継承)
ノードテキストを取得します。
Bool IsSameNode( SFXXMLNodeConstPtr other ) (SFXXMLNode から継承)
指定されたノードと同一であるか判定します。
Void SetNodeValue( ACharConstPtr value ) (SFXXMLNode から継承)
ノードの値(nodeValue 属性値)を設定します。
SFCError SetText( SFXAnsiStringConstRef text ) (SFXXMLNode から継承)
ノードテキストを設定します。
DOMNamedNodeMap (SFXXMLNode から継承)
複数の DOM ノードを名前またはローカル名と名前空間 URI で管理するためのクラスです。
DOMNodeList (SFXXMLNode から継承)
複数の DOM ノードをリスト形式で管理するためのクラスです。
NodeType (SFXXMLNode から継承)
ノードタイプを表す定数です。

SFXXMLElement::SFXXMLElement
SFXXMLElement クラスのコンストラクタです。
[ public, explicit ]
SFXXMLElement(
    SFXXMLDocumentPtr owner      // ドキュメントツリーのルート
    SFXAnsiStringConstRef name   // 要素名
);
[ public, explicit ]
SFXXMLElement(
    SFXXMLDocumentPtr owner              // ドキュメントツリーのルート
    SFXAnsiStringConstRef name           // 要素名: 修飾名("名前空間接頭辞:ローカル名")で指定する
    SFXAnsiStringConstRef namespaceURI   // 要素の名前空間 URI
);
[ public, explicit ]
SFXXMLElement(
    SFXXMLElementConstRef other   // Element ノード
    Bool deep = false             // 子ノードを再帰的にコピーするかどうか
);

解説

このコンストラクタは、指定された値をこのノードに設定します。 指定された要素名からローカル名と名前空間接頭辞も自動的に設定されます。

引数には、このノードを所有するドキュメントツリーのルート(SFXXMLDocument)・要素名・要素の名前空間 URI(省略可)、 または別の Element ノードのいずれかを指定することが可能です。

なお、name 引数で指定した要素名は、このノードの nodeName 属性として設定されます。

[Note] ローカル名と名前空間接頭辞の設定

namespaceURI 引数(名前空間 URI)を指定する場合は、 要素名は修飾名("名前空間接頭辞:ローカル名")で指定します。

要素名の ":" の位置よりも左側にある文字列が名前空間接頭辞、右側にある文字列がローカル名に設定されます。

要素名が空文字列であったり、":" の位置が要素名の先頭または末尾にある場合は何も設定されません。

namespaceURI 引数(名前空間 URI)を指定しない場合、 要素名に ":" が含まれなければ、名前空間接頭辞は空文字列、name 引数に指定された要素名がローカル名に設定されます。 要素名に ":" が含まれる場合は、要素名の ":" の位置よりも左側にある文字列が名前空間接頭辞、右側にある文字列がローカル名に設定されます。 この場合、名前空間 URI には空文字列が設定されます。

指定する名前空間接頭辞が "xml" の場合、namespaceURI 引数には以下の名前空間 URI を指定する必要があります。 異なる名前空間 URI を指定した場合、その名前空間 URI は無視され設定さません。

名前空間接頭辞 名前空間 URI
xml http://www.w3.org/XML/1998/namespace

namespaceURI 引数が空で無い場合、 この Element ノードは要素名の名前空間接頭辞の有無に応じて以下の属性を持ちます (Attribute ノードが自動的に作成され、この Element ノードのプロパティとなります)。

名前空間接頭辞 属性名 属性値
無し xmlns namespaceURI 引数に指定した URI
有り xmlns:名前空間接頭辞 namespaceURI 引数に指定した URI

参照

SFXXMLElement::GetNodeName | SFXXMLElement::GetPrefix | SFXXMLElement::GetLocalName | SFXXMLElement::GetNamespaceURI | SFXXMLDocument


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

解説

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


SFXXMLElement::AppendChild
子ノードの最後にノードを追加します。
[ public, virtual ]
SFCError AppendChild(
    SFXXMLNodeConstPtr newchild   // 追加するノード
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • newchild 引数が不正であるとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、指定されたノード(newchild ノード)をこのノードの最後の子ノードとして追加します。

newchild ノードをコピーせずにそのまま追加します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。

[Note] newchild 引数が不正になる条件

以下のとき、newchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。

  • newchild ノードが null の場合。
  • newchild ノードを所有するドキュメントツリーのルートが、 このノードを所有するドキュメントツリーのルートでない場合。
  • newchild ノードが、このノードまたはこのノードの祖先ノードである場合。

[Note] 注意

newchild 引数には、Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference の何れかのノードを指定してください。

[Note] 注意

内部で SFXXMLElement::InsertBefore(newchild, null) を呼び出しています。

参照

SFXXMLElement::InsertBefore | SFXXMLNode::AppendChild | SFXXMLNode


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

引数

clonenode

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

deep

true の場合、子ノードを再帰的にコピーします。 false の場合、ノード自身とElement ノードに関連付けられた Attribute ノードだけをコピーします。

戻り値

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

解説

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

[Note] 子孫ノードのコピー

deep 引数に true を指定すると、このノードの子孫ノードも含めてコピーが行われます。 false を指定した場合は、このノードとこのノードに関連付けられた Attribute ノードだけがコピーされます(このノードの子孫ノードはコピーされません)。

参照

SFXXMLElement::SFXXMLElement | SFXXMLNode::CloneNode | SFXXMLNode


SFXXMLElement::EqualNode
指定したノードと同等かどうかを判定します。
[ public, virtual, const ]
Bool EqualNode(
    SFXXMLNodeConstPtr arg   // 同等性を比較する対象のノード 
);

戻り値

  • 同等であるとき: true
  • そうでないとき: false

解説

この関数は、指定されたノードと同等かどうか(ノードの内容が同じであるかどうか)を判定します。

[Note] 2 つのノードが同等であるための条件

2 つのノードが同等であるための条件は、以下のように再帰的に定義されます。

  1. 2 つのノードが同じであること(SFXXMLNode::IsSameNode 関数の戻り値が true であるとき)
  2. 2 つのノードが同じでない(異なる)場合は、以下の条件をすべて満足すること
    • ノードタイプ(nodeType 属性値)が同じであること
    • ノードの名前(nodeName 属性値)が同じであること
    • ノードの値(nodeValue 属性値)が同じであること
    • (子ノードが存在するなら)子ノードの数が同じであり、かつ同じ位置にある子ノード同士が同等であること
  3. Element ノードの場合は、 設定されているローカル名、名前空間 URI、名前空間接頭辞、属性も同じであること
[Note] 2 つのノードの同一性の判定

2 つのノードが同一であるかどうか(2 つのノードが同じオブジェクトを参照しているかどうか)の判定には、 SFXXMLNode::IsSameNode 関数を使用します。

参照

SFXXMLNode::EqualNode | SFXXMLNode::IsSameNode | SFXXMLNode


SFXXMLElement::GetAttribute
指定された名前を持つ属性に設定されている値(属性値)を取得します。
[ public, const ]
ACharConstPtr GetAttribute(
    SFXAnsiStringConstRef name   // 属性名: 名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあり
);

引数

name

属性名を指定します。名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

戻り値

指定された名前を持つ属性に設定されている属性値

解説

この関数は、この Element ノードを表す要素の指定された名前を持つ属性に設定されている値(属性値)を取得します。

指定された属性が存在しなかったり、 属性値が設定されていない場合は、null を返します。

具体的には、この Element ノードが保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクト(属性情報)から 指定された名前を nodeName 属性値として持つ Attribute ノードを取得し、 そのノードの値(nodeValue 属性値)を返します。

[Note] 注意

Attribute ノードの名前は、XML 文書の属性名のことです。

[Note] 注意

属性名は、名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

[Note] 注意

ローカル名と名前空間 URI で属性を指定する場合は、 SFXXMLElement::GetAttributeNS 関数を使用します。

使用例

// "xmlns:dt" という名前の属性値を取得する 
SFXAnsiString atti = boot->GetAttribute("xmlns:dt");

参照

SFXXMLElement::SetAttribute | SFXXMLElement::GetAttributeNS | SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::GetAttributes | SFXXMLElement::GetAttributeNode | SFXXMLElement::SetAttributeNode | SFXXMLElement::HasAttribute | SFXXMLElement::HasAttributes | SFXXMLElement::RemoveAttribute | SFXXMLElement::RemoveAttributeNode


SFXXMLElement::GetAttributeNS
指定されたローカル名と名前空間 URI を持つ属性に設定されている値(属性値)を取得します。
[ public, const ]
ACharConstPtr GetAttributeNS(
    SFXAnsiStringConstRef localname      // 属性のローカル名
    SFXAnsiStringConstRef namespaceURI   // 属性の名前空間 URI
);

引数

localname

属性のローカル名を指定します。

namespaceURI

属性の名前空間 URI を指定します。

戻り値

指定されたローカル名と名前空間 URI を持つ属性に設定されている属性値

解説

この関数は、この Element ノードを表す要素の指定されたローカル名と名前空間 URI を持つ属性に設定されている値(属性値)を取得します。

指定されたローカル名と名前空間 URI を持つ属性が存在しなかったり、 属性値が設定されていない場合は、null を返します。

具体的には、この Element ノードが保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクト(属性情報)から 指定されたローカル名と名前空間 URI を持つ Attribute ノードを取得し、 そのノードの値(nodeValue 属性値)を返します。

[Note] 注意

名前(属性名)で属性を指定する場合は、 SFXXMLElement::GetAttribute 関数を使用します。

[Note] 注意

Attribute ノードの名前とは、XML 文書の属性名のことです。

[Note] 注意

属性名は、名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

参照

SFXXMLElement::GetAttribute | SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::GetAttributeNodeNS | SFXXMLElement::GetAttributes | SFXXMLElement::SetAttributeNS | SFXXMLElement::SetAttributeNodeNS | SFXXMLElement::HasAttributeNS | SFXXMLElement::HasAttributes | SFXXMLElement::RemoveAttributeNS


SFXXMLElement::GetAttributeNode
指定された名前を持つ Attribute ノードを取得します。
[ public, const ]
SFXXMLAttributePtr GetAttributeNode(
    SFXAnsiStringConstRef name   // Attribute ノードの名前(属性名): 名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあり
);

引数

name

Attribute ノードの名前(属性名)を指定します。 名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

戻り値

指定された名前を持つ Attribute ノード

解説

この関数は、この Element ノードから指定された名前を持つ Attribute ノードを取得します。

存在しない場合は、null を返します。

具体的には、この Element ノードが保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクト(属性情報)から nodeName 属性値として name 引数に指定された名前を持つ Attribute ノードを取得します。

[Note] 注意

Attribute ノードの名前は、XML 文書の属性名のことです。

[Note] 注意

属性名は、名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

[Note] 注意

ローカル名と名前空間 URI で属性を指定する場合は、 SFXXMLElement::GetAttributeNodeNS 関数を使用します。

使用例

// "xmlns:dt" という名前を持つ Attribute ノードを取得する 
SFXXMLAttributePtr atti = boot->GetAttributeNode("xmlns:dt");

参照

SFXXMLElement::GetAttributeNodeNS | SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::GetAttribute | SFXXMLElement::GetAttributes | SFXXMLElement::SetAttribute | SFXXMLElement::SetAttributeNode | SFXXMLElement::HasAttribute | SFXXMLElement::HasAttributes | SFXXMLElement::RemoveAttribute | SFXXMLElement::RemoveAttributeNode


SFXXMLElement::GetAttributeNodeNS
指定されたローカル名と名前空間 URI を持つ Attribute ノードを取得します。
[ public, const ]
SFXXMLAttributePtr GetAttributeNodeNS(
    SFXAnsiStringConstRef localname      // 属性のローカル名
    SFXAnsiStringConstRef namespaceURI   // 属性の名前空間 URI
);

引数

localname

属性のローカル名を指定します。

namespaceURI

属性の名前空間 URI を指定します。

戻り値

指定された修飾名を持つ Attribute ノード

解説

この関数は、この Element ノードから指定されたローカル名と名前空間 URI を持つ Attribute ノードを取得します。

存在しない場合は、null を返します。

具体的には、この Element ノードがを保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクト(属性情報)から 指定されたローカル名と名前空間 URI を持つ Attribute ノードを取得します。

[Note] 注意

名前(属性名)で属性を指定する場合は、 SFXXMLElement::GetAttributeNode 関数を使用します。

[Note] 注意

Attribute ノードの名前とは、XML 文書の属性名のことです。

[Note] 注意

属性名は、名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

参照

SFXXMLElement::GetAttributeNode | SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::GetAttributeNS | SFXXMLElement::GetAttributes | SFXXMLElement::SetAttributeNS | SFXXMLElement::SetAttributeNodeNS | SFXXMLElement::HasAttributeNS | SFXXMLElement::HasAttributes | SFXXMLElement::RemoveAttributeNS


SFXXMLElement::GetAttributes
Element ノードに含まれるすべての Attribute ノードを取得します。
[ public, const ]
DOMNamedNodeMapPtr GetAttributes(Void);

戻り値

この Element ノードに設定されている、 すべての Attribute ノードの NamedNodeMap(SFXXMLNode::DOMNamedNodeMap へのポインタ)

解説

この関数は、この Element ノードに設定されている、すべての Attribute ノードを取得します。

Attribute ノードが設定されていない場合は、null を返します。

具体的には、この Element ノードが表す要素の属性情報を保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクトを返します。

[Note] 注意

この関数は、この Element ノードが表す要素のすべての属性を取得します。

使用例

// Element ノードに Attribute ノードが設定されているか判定する  
if (SFXXMLElementPtr(child)->HasAttributes()) {

    // Element ノードに設定されているすべての Attribute ノードを DOMNamedNodeMap へのポインタとして取得する 
    SFXXMLNode::DOMNamedNodeMapPtr attr = SFXXMLElementPtr(child)->GetAttributes();
    if (attr) {

        for (int i = 0; i < attr->GetLength(); i++) {

            SFXXMLNodePtr item = attr->Item(i);
            if (item) {

                if(item->GetNodeType() == SFXXMLNode::ATTRIBUTE_NODE);

                     ...
            }                            
        }
    }
}

参照

SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::GetAttribute | SFXXMLElement::GetAttributeNode | SFXXMLElement::SetAttribute | SFXXMLElement::SetAttributeNode | SFXXMLElement::HasAttribute | SFXXMLElement::HasAttributes | SFXXMLElement::GetAttributeNode | SFXXMLElement::RemoveAttribute | SFXXMLElement::RemoveAttributeNode


SFXXMLElement::GetChildNodes
すべての子ノードを取得します。
[ public, virtual, const ]
DOMNodeListPtr GetChildNodes(Void);

戻り値

すべての子ノード(SFXXMLNode::DOMNodeList へのポインタ)

解説

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

[Note] 注意

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

[Note] 注意

SFXXMLNode::DOMNodeList の各要素は、 SFXXMLNode へのポインタです。

使用例

// タグ名が "BOOK" である Element ノードを取得する
SFXXMLNode::DOMNodeListPtr list = root->GetElementsByTagName("BOOK");

 if (list) {
    // 列挙子を取得する
    SFXXMLNode::DOMNodeList::Enumerator enumer = list->GetFirstEnumerator();

    while (enumer.HasNext()) {
        // 各 Element ノードを取得する
        SFXXMLElementPtr elem = static_cast<SFXXMLElementPtr>(enumer.GetNext());
        // 各 Element ノードのすべての子ノードを取得する
        SFXXMLNode::DOMNodeListPtr nodeList = elem->GetChildNodes();
        // 子ノードの列挙子を取得する
        SFXXMLNode::DOMNodeList::Enumerator childiter = nodeList->GetFirstEnumerator();

        while (childiter.HasNext()) {
            SFXXMLElementPtr child = static_cast<SFXXMLElementPtr>(childiter.GetNext());

            TRACE("child name: %s", child->GetName());    // 子ノードの名前を表示する
            TRACE("child text: %s", child->GetText().GetCString());  // 子ノードの内容をまとめた文字列を表示する
        }
    }
}

参照

SFXXMLNode::DOMNodeList | SFXXMLNode::GetChildNodes | SFXXMLNode


SFXXMLElement::GetElementsByTagName
この Element ノードを所有するドキュメントツリー内で指定されたタグ名を持つ Element ノードをすべて取得します。
[ public, const ]
DOMNodeListPtr GetElementsByTagName(
    SFXAnsiStringConstRef name   // タグ名:名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")の場合もあり
);

引数

name

タグ名を指定します。大文字と小文字は区別されます。名前空間が設定されている場合、タグ名は修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

戻り値

指定されたタグ名に一致する Element ノードのリスト(SFXXMLNode::DOMNodeList へのポインタ)

解説

この関数は、 この Element ノードを所有するドキュメントツリー内で指定されたタグ名を nodeName 属性値として持つ Element ノードのリストを取得します。

Element ノードのリストは出現順に並びます。

指定されたタグ名に一致する Element ノードが存在しない場合は、null を返します。

[Note] 注意

名前空間が設定されている場合、 この関数で指定するタグ名は修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

[Note] 注意

ローカル名と名前空間 URI で指定する場合は、 SFXXMLElement::GetElementsByTagNameNS 関数を使用します。

[Note] 注意

この関数は、 内部的に root 引数にこの Element ノードを指定して SFXXMLDocument::GetElementsByTagName 関数を呼び出しています。

使用例

SFCError error;             // エラー値
SFXXMLDOMParser parser;     // DOM パーサー
SFXAnsiString resultString; // Element ノードのテキストを一時的に格納するための変数

// XML 文書 "apple.xml" を解析する
if ((error = parser.Parse("/apple.xml")) == SFERR_NO_ERROR) {

    // DOM ツリーのルートノードを取得する
    SFXXMLDocumentPtr root = parser.GetDocument(); 

    // XML 文書のルート要素(DOM ツリーのルートノードの最初の子ノード。この場合、fruit 要素)を取得する
    SFXXMLNodePtr child = root->GetFirstChild(); 

    // fruit 要素のすべての子要素(子ノード)を取得する
    // SFXXMLNode::DOMNodeListPtr は SFXList<SFXXMLNodePtr> と同じ
    SFXXMLNode::DOMNodeListPtr nodeList = child->GetChildNodes();

    // イテレータを取得する
    SFXXMLNode::DOMNodeList::Iterator itor = nodeList->GetFirstIterator(); 
    
    // タグ名が "color" である、すべての Element ノードを取得する
    nodeList = static_cast<SFXXMLElementPtr>(child)->GetElementsByTagName("color"); 

    // イテレータを取得する
    itor = nodeList->GetFirstIterator();

    // 取得した すべての Element ノードのテキストを表示する
    while (itor.HasNext()) {

        // 次の Element ノードを取得する
        SFXXMLNodePtr node = itor.GetNext();

        // Element ノードのテキストを取得する
        resultString = node->GetText();

        // Element ノードのテキストを表示する
        TRACE("%s",resultString.GetCString());
    }
}

参照

SFXXMLElement::GetElementsByTagNameNS | SFXXMLDocument::GetElementsByTagName | SFXXMLNode::DOMNodeList


SFXXMLElement::GetElementsByTagNameNS
この Element ノードを所有するドキュメントツリー内で指定されたローカル名と名前空間 URI を持つ Element ノードをすべて取得します。
[ public, const ]
DOMNodeListPtr GetElementsByTagNameNS(
    SFXAnsiStringConstRef localname      // 要素のローカル名
    SFXAnsiStringConstRef namespaceURI   // 要素の名前空間 URI
);

引数

localname

要素のローカル名を指定します(大文字と小文字は区別されます)。

namespaceURI

要素の名前空間 URI を指定します。

戻り値

指定されたローカル名と名前空間 URI を持つ Element ノードのリスト(SFXXMLNode::DOMNodeList へのポインタ)

解説

この関数は、 この Element ノードを所有するドキュメントツリー内で指定されたローカル名と名前空間 URI を持つ、 すべての Element ノードを SFXXMLNode::DOMNodeList に格納して返します。

Element ノードのリストはタグの出現順に並びます。

指定されたローカル名と名前空間 URI を持つ Element ノードが存在しない場合は、null を返します。

[Note] 注意

タグ名で指定する場合は、 SFXXMLElement::GetElementsByTagName 関数を使用します。

[Note] 注意

この関数は、 内部的に root 引数にこの Element ノードを指定して SFXXMLDocument::GetElementsByTagNameNS 関数を呼び出しています。

参照

SFXXMLElement::GetElementsByTagName | SFXXMLDocument::GetElementsByTagNameNS | SFXXMLNode::DOMNodeList


SFXXMLElement::GetFirstChild
最初の子ノードを取得します。
[ public, virtual, const ]
SFXXMLNodePtr GetFirstChild(Void);

戻り値

最初の子ノード

解説

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

[Note] 注意

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

参照

SFXXMLNode::GetFirstChild | SFXXMLNode


SFXXMLElement::GetLastChild
最後の子ノードを取得します。
[ public, virtual, const ]
SFXXMLNodePtr GetLastChild(Void);

戻り値

最後の子ノード

解説

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

[Note] 注意

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

参照

SFXXMLNode::GetLastChild | SFXXMLNode


SFXXMLElement::GetLocalName
ノードの名前(nodeName 属性値)のローカル名を取得します。
[ public, const ]
ACharConstPtr GetLocalName(Void);

戻り値

このノードの nodeName 属性値のローカル名

解説

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

Element ノードの場合、nodeName 属性値は XML 文書の「要素名」のことです。 「要素名」は、修飾名("名前空間接頭辞:ローカル名")で表されます。

[Note] 注意

SFXXMLElement::SFXXMLElement コンストラクタで name 引数に修飾名で指定した場合、 修飾名の ":" よりも右側にある文字列がローカル名として返されます。

参照

SFXXMLElement::SFXXMLElement | SFXXMLElement::GetName | SFXXMLElement::GetNodeName | SFXXMLElement::GetPrefix | SFXXMLElement::GetNamespaceURI


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

戻り値

ノードの名前(nodeName 属性値)

解説

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

Element ノードの場合、nodeName 属性値は XML 文書の「要素名」のことです。

名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")が返されます。

[Note] 注意

要素名は、SFXXMLElement::SFXXMLElement コンストラクタの name 引数で設定します。

[Note] 注意

SFXXMLElement::GetNodeName 関数を呼び出すのと同等です。

使用例

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="http://www.w3.org/1999/xhtml"
    version="1.0">
<xsl:output encoding="Shift_JIS"  method="xml"
    doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
    doctype-system="DTD/xhtml1-transitional.dtd"/>
	<xsl:template match="/">
	    <html>
	        <head>
	           <title>words</title>
	        </head>
	        <body bgcolor="#CCFFFF">
	            <center>
	                <table border="0">
	                    <xsl:apply-templates select=".//def"/>
	                </table>
	            </center>
	        </body>
	    </html>
	</xsl:template>
	<xsl:template match="def">
	    <tr><td><b><xsl:apply-templates/></b></td></tr>
	</xsl:template>
	<xsl:template match="text()">
	    <xsl:value-of select="."/>
	</xsl:template>
</xsl:stylesheet>


// Element ノードを取得する
SFXXMLElementPtr stylesheet = document.GetDocumentElement();
TRACE("Element's name = %s", stylesheet->GetName());               // 修飾名         = xsl:stylesheet 
TRACE("Element's localname = %s", stylesheet->GetLocalName());     // ローカル名     = stylesheet 
TRACE("Element's prefix = %s", stylesheet->GetPrefix());           // 名前空間接頭辞 = xsl 
TRACE("Element's uri = %s", stylesheet->GetNamespaceURI());        // 名前空間 URI   = http://www.w3.org/1999/XSL/Transform 
 

参照

SFXXMLElement::GetNodeName | SFXXMLElement::GetLocalName | SFXXMLElement::GetPrefix | SFXXMLElement::GetNamespaceURI


SFXXMLElement::GetNamespaceURI
名前空間 URI を取得します。
[ public, const ]
ACharConstPtr GetNamespaceURI(Void);

戻り値

このノードに設定されている名前空間 URI

解説

この関数は、このノードに設定されている名前空間 URI を取得します。

名前空間 URI が設定されていない場合は、null を返します。

[Note] 注意

名前空間 URI は、SFXXMLElement::SFXXMLElement コンストラクタの namespaceURI 引数に指定します。

要素名の名前空間接頭辞が "xml" の場合は、以下の表にある名前空間 URI しか設定できません。

名前空間接頭辞 名前空間 URI
xml http://www.w3.org/XML/1998/namespace

参照

SFXXMLElement::SFXXMLElement | SFXXMLElement::GetName | SFXXMLElement::GetNodeName | SFXXMLElement::GetPrefix | SFXXMLElement::GetLocalName


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

戻り値

次の兄弟ノード

解説

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

[Note] 注意

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

使用例

SFXXMLDOMParser parser;    // DOM パーサー

// DOM ツリーのルートを取得する
SFXXMLDocumentPtr root = parser.GetDocument();

// ルートの 1 番目の子ノード(XML 文書のルート要素)を取得する
SFXXMLNodePtr node = root->GetFirstChild();

// Element ノードへのポインタに型変換する
SFXXMLElementPtr elem = static_cast<SFXXMLElementPtr>(node); 

SFXXMLNodePtr child = elem->GetFirstChild();     // 最初の子ノードを取得する    
SFXXMLNodePtr author = child->GetNextSibling();  // 次の兄弟ノードを取得する

参照

SFXXMLElement::GetPreviousSibling | SFXXMLNode::GetNextSibling| SFXXMLNode::GetPreviousSibling | SFXXMLNode


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

戻り値

ノードの名前(nodeName 属性値)

解説

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

Element ノードの場合、nodeName 属性値は XML 文書の「要素名」のことです。

名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")が返されます。

[Note] 注意

要素名は、SFXXMLElement::SFXXMLElement コンストラクタの name 引数で設定します。

[Note] 注意

SFXXMLElement::GetName 関数を呼び出すのと同等です。

参照

SFXXMLElement::SFXXMLElement | SFXXMLElement::GetName | SFXXMLNode::GetNodeName | SFXXMLNode


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

戻り値

SFXXMLNode::ELEMENT_NODE

解説

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

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

参照

SFXXMLNode::NodeType | SFXXMLNode::GetNodeType | SFXXMLNode


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

戻り値

親ノード

解説

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

[Note] 注意

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

参照

SFXXMLNode::GetParentNode | SFXXMLNode


SFXXMLElement::GetPrefix
名前空間接頭辞を取得します。
[ public, const ]
ACharConstPtr GetPrefix(Void);

戻り値

このノードの nodeName 属性値の名前空間接頭辞

解説

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

設定されていない場合は、null を返します。

Element ノードの場合、nodeName 属性値は XML 文書の「要素名」のことです。 「要素名」は、修飾名("名前空間接頭辞:ローカル名")で表されます。

[Note] 注意

SFXXMLAttribute::SFXXMLAttribute コンストラクタで name 引数に修飾名で指定した場合、 修飾名の ":" よりも左側にある文字列が名前空間接頭辞として返されます。

参照

SFXXMLElement::SFXXMLElement | SFXXMLElement::GetName SFXXMLElement::GetNodeName | SFXXMLElement::GetLocalName | SFXXMLElement::GetNamespaceURI


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

戻り値

前の兄弟ノード

解説

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

[Note] 注意

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

参照

SFXXMLElement::GetNextSibling | SFXXMLNode::GetPreviousSibling | SFXXMLNode::GetNextSibling | SFXXMLNode


SFXXMLElement::HasAttribute
指定された名前を持つ属性が設定されているか判定します。
[ public, const ]
Bool HasAttribute(
    SFXAnsiStringConstRef name   // 属性名: 名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあり
);

引数

name

属性名を指定します。名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

戻り値

  • 持つとき: true
  • そうでないとき: false

解説

この関数は、この Element ノードに指定された名前を持つ属性(Attribute ノード)が設定されているか判定します。

具体的には、この Element ノードが保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクト(属性情報)に 指定された名前を nodeName 属性値として持つ Attribute ノードが存在するか確認します。

[Note] 注意

Attribute ノードの名前は、XML 文書の属性名のことです。

[Note] 注意

属性名は、名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

[Note] 注意

ローカル名と名前空間 URI で属性を指定する場合は、 SFXXMLElement::HasAttributeNS 関数を使用します。

使用例

// "isdn" という名前の属性を持つかどうかを判定する
if(book->HasAttribute("isdn") == false){

        ....
}

参照

SFXXMLElement::HasAttributeNS | SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::HasAttributes | SFXXMLElement::SetAttribute | SFXXMLElement::SetAttributeNode | SFXXMLElement::GetAttribute | SFXXMLElement::GetAttributeNode | SFXXMLElement::GetAttributes | SFXXMLElement::RemoveAttribute | SFXXMLElement::RemoveAttributeNode


SFXXMLElement::HasAttributeNS
指定されたローカル名と名前空間 URI を持つ属性が設定されているか判定します。
[ public, const ]
Bool HasAttributeNS(
    SFXAnsiStringConstRef localname      // 属性のローカル名
    SFXAnsiStringConstRef namespaceURI   // 属性の名前空間 URI
);

引数

localname

属性のローカル名を指定します。

namespaceURI

属性の名前空間 URI を指定します。

戻り値

  • 持つとき: true
  • そうでないとき: false

解説

この関数は、この Element ノードに指定されたローカル名と名前空間 URI を持つ属性 (Attribute ノード)が設定されているか判定します。

具体的には、この Element ノードが保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクト(属性情報)に 指定されたローカル名と名前空間 URI を持つ Attribute ノードが存在するか確認します。

[Note] 注意

名前(属性名)で属性を指定する場合は、 SFXXMLElement::HasAttribute 関数を使用します。

[Note] 注意

Attribute ノードの名前とは、XML 文書の属性名のことです。

[Note] 注意

属性名は、名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

参照

SFXXMLElement::HasAttribute | SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::HasAttributes | SFXXMLElement::SetAttributeNS | SFXXMLElement::SetAttributeNodeNS | SFXXMLElement::GetAttributeNS | SFXXMLElement::GetAttributeNodeNS | SFXXMLElement::GetAttributes | SFXXMLElement::RemoveAttributeNS


SFXXMLElement::HasAttributes
Attribute ノードが設定されているか判定します。
[ public, const ]
Bool HasAttributes(Void);

戻り値

  • 持つとき: true
  • そうでないとき: false

解説

この関数は、この Element ノードに Attribute ノードが設定されているか判定します。

具体的には、この Element ノードが表す要素の属性情報を保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクトに Attribute ノードが存在するか確認します。

使用例

// Attribute ノードを持つかどうかを判定する
if(book->HasAttributes() == false){
    .....
}

参照

SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::HasAttribute | SFXXMLElement::SetAttribute | SFXXMLElement::SetAttributeNode | SFXXMLElement::GetAttribute | SFXXMLElement::GetAttributeNode | SFXXMLElement::GetAttributes | SFXXMLElement::RemoveAttribute | SFXXMLElement::RemoveAttributeNode


SFXXMLElement::HasChildNodes
子ノードを持つかどうか判定します。
[ public, virtual, const ]
Bool HasChildNodes(Void);

戻り値

  • 子ノードを持つとき: true
  • そうでないとき: false

解説

この関数は、このノードが子ノードを持つかどうか判定します。

参照

SFXXMLNode::HasChildNodes | SFXXMLNode


SFXXMLElement::InsertBefore
ノードを挿入します。
[ public, virtual ]
SFCError InsertBefore(
    SFXXMLNodeConstPtr newchild   // 挿入するノード
    SFXXMLNodeConstPtr refchild   // 参照ノード、このノードの直前に挿入される
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • newchild / refchild 引数が不正であるとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、newchild 引数に指定されたノード(newchild ノード)を refchild 引数に指定されたノード(refchild ノード)の前に挿入します。

newchild ノードをコピーせずにそのまま挿入します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。

newchild ノードが DocumentFragment ノードの場合、 newchild ノードの代わりにその子ノードのすべてを元の順番どおりに、refchild ノードの直前に挿入します。

refchild ノードが null の場合は、一番最後の子ノードとして挿入します。 また、newchild ノードと refchild ノードが同じノードを指す場合、何も起こりません。

[Note] newchild / refchild 引数が不正になる条件

以下のとき、newchild / refchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。

  • newchild ノードが null の場合。
  • newchild ノードを所有するドキュメントツリーのルートが、 このノードを所有するドキュメントツリーのルートでない場合。
  • refchild ノードの親がこのノードでない場合。
  • newchild ノードが、このノードまたはこのノードの祖先ノードである場合。
  • newchild ノードが、Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference の何れのノードでもない場合。

使用例

// Element ノードを作成する    
SFXXMLElementPtr isbn = document.CreateElement("ISBN");

// Element ノードに Text ノードを追加する   
isbn->AppendChild(SFXXMLNodePtr(document.CreateTextNode("4-7741-1616-5")));

// Element ノードを追加する   
book->InsertBefore(SFXXMLNodePtr(isbn), book->GetFirstChild());

参照

SFXXMLNode::InsertBefore | SFXXMLNode


SFXXMLElement::RemoveAttribute
指定された名前を持つ属性を削除します。
[ public ]
Void RemoveAttribute(
    SFXAnsiStringConstRef name   // 属性名: 名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあり
);

引数

name

属性名を指定します。名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

解説

この関数は、この Element ノードを表す要素の指定された名前を持つ属性を削除します。

指定された名前を持つ属性が存在しない場合、属性は削除されません。

具体的には、この Element ノードが保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクト(属性情報)から nodeName 属性値として name 引数に指定された名前を持つ Attribute ノードを削除します。

[Note] 注意

Attribute ノードの名前とは、XML 文書の属性名のことです。

[Note] 注意

属性名は、名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

[Note] 注意

ローカル名と名前空間 URI で属性を指定する場合は、 SFXXMLElement::RemoveAttributeNS 関数を使用します。

使用例

// "dt:dt" という名前の属性を削除する
book->RemoveAttribute("dt:dt");

参照

SFXXMLElement::RemoveAttributeNS | SFXXMLElement::RemoveAttributeNode | SFXXMLElement::GetAttribute | SFXXMLElement::GetAttributeNode | SFXXMLElement::GetAttributes | SFXXMLElement::HasAttribute | SFXXMLElement::HasAttributes | SFXXMLElement::SetAttribute | SFXXMLElement::SetAttributeNode


SFXXMLElement::RemoveAttributeNS
指定されたローカル名と名前空間 URI を持つ属性を削除します。
[ public ]
Void RemoveAttributeNS(
    SFXAnsiStringConstRef localname      // 属性のローカル名
    SFXAnsiStringConstRef namespaceURI   // 属性の名前空間 URI
);

引数

localname

属性のローカル名を指定します。

namespaceURI

属性の名前空間 URI を指定します。

解説

この関数は、この Element ノードを表す要素の指定されたローカル名と名前空間 URI を持つ属性を削除します。

指定されたローカル名と名前空間 URI を持つ属性が存在しない場合、属性は削除されません。

具体的には、この Element ノードが保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクト(属性情報)から 引数に指定されたローカル名と名前空間 URI を持つ Attribute ノードを削除します。

[Note] 注意

名前(属性名)で属性を指定する場合は、 SFXXMLElement::RemoveAttribute 関数を使用します。

[Note] 注意

Attribute ノードの名前とは、XML 文書の属性名のことです。

[Note] 注意

属性名は、名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

参照

SFXXMLElement::RemoveAttribute | SFXXMLElement::GetAttributeNS | SFXXMLElement::GetAttributeNodeNS | SFXXMLElement::GetAttributes | SFXXMLElement::HasAttributeNS | SFXXMLElement::HasAttributes | SFXXMLElement::SetAttributeNS | SFXXMLElement::SetAttributeNodeNS | SFXXMLElement::RemoveAttributeNode


SFXXMLElement::RemoveAttributeNode
指定された Attribute ノードを削除します。
[ public ]
SFXXMLAttributePtr RemoveAttributeNode(
    SFXXMLAttributePtr oldAttr   // 削除する Attrubite ノード
);

戻り値

削除された Attrubite ノード(SFXXMLAttribute

解説

この関数は、この Element ノードから指定された Attribute ノードを削除します。

具体的には、この Element ノードが保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクト(属性情報)から指定された Attribute ノードの名前と同じ名前を持つ Attribute ノードを削除します。

この関数の戻り値は、削除された Attribute ノードです。

[Note] 注意

Attribute ノードの名前は、XML 文書の属性名のことです。

[Note] 注意

属性名は、名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

使用例

// "dt:dt" という Attrubite ノードを取得する
SFXXMLAttributePtr atti = book->GetAttributeNode("dt:dt");

// 取得した Attrubite ノードを Element ノードから削除する
book->RemoveAttributeNode(atti);

//  Attrubite ノードを削除する
delete atti;

参照

SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::GetAttribute | SFXXMLElement::GetAttributeNode | SFXXMLElement::GetAttributes | SFXXMLElement::HasAttribute | SFXXMLElement::HasAttributes | SFXXMLElement::SetAttribute | SFXXMLElement::SetAttributeNode | SFXXMLElement::RemoveAttribute | SFXXMLAttribute


SFXXMLElement::RemoveChild
子孫ノードも含めて子ノードを削除します。
[ public, virtual ]
SFCError RemoveChild(
    SFXXMLNodeConstPtr oldchild   // 削除する子ノード
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • oldchild 引数が null であるとき、またはこのノードの子ノードでないとき: SFERR_INVALID_PARAM
  • 失敗したとき: SFERR_FAILED

解説

この関数は、このノードから子孫ノードも含めて指定された子ノードを削除します。

参照

SFXXMLNode::RemoveChild | SFXXMLNode


SFXXMLElement::ReplaceChild
子ノードを置換します。
[ public, virtual ]
SFCError ReplaceChild(
    SFXXMLNodeConstPtr newchild   // 置換後ノード
    SFXXMLNodeConstPtr oldchild   // 置換前ノード
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • newchild / oldchild 引数が不正であるとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY
  • 失敗したとき: SFERR_FAILED

解説

この関数は、oldchild 引数に指定されたこのノードの子ノード(oldchild ノード)を newchild 引数に指定されたノード(newchild ノード)で置換します。

newchild ノードをコピーせずにそのまま挿入します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。

oldchild ノード以下の子孫ノードは、DOM ツリーから削除され、メモリも解放されます。

newchild ノードが DocumentFragment ノードの場合、 newchild ノードの代わりにその子ノードのすべてを元の順番どおりに、oldchild ノードを置換します。

newchild ノードと oldchild ノードが同じである場合は、何も起こりません。

[Note] newchild / oldchild 引数が不正になる条件

以下のとき、newchild / oldchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。

  • newchild ノード、またはoldchild ノードが null の場合。
  • newchild ノードを所有するドキュメントツリーのルートが、 このノードを所有するドキュメントツリーのルートでない場合。
  • oldchild ノードの親がこのノードでない場合。
  • newchild ノードが、このノードまたはこのノードの祖先ノードである場合。

[Note] 注意

newchild 引数には、Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference の何れかのノードを指定してください。

[Tip] Tip

内部では、SFXXMLElement::InsertBefore(newchild, oldchild) を呼び出してから、 SFXXMLElement::RemoveChild(oldchild) を実行します。

使用例

// name ノードを作成する   
SFXXMLElementPtr name = document.CreateElement("NAME");

// テキストを作成し、name ノードに追加する
name->AppendChild(SFXXMLNodePtr(document.CreateTextNode("Cosmos")));

// book ノードの最初の子ノードを name ノードで置換する
book->ReplaceChild(name, book->GetFirstChild());

参照

SFXXMLElement::InsertBefore | SFXXMLElement::RemoveChild | SFXXMLNode::ReplaceChild | SFXXMLNode


SFXXMLElement::SetAttribute
指定された名前を持つ属性に指定された値(属性値)を設定します。
[ public ]
Void SetAttribute(
    SFXAnsiStringConstRef name   // 属性名(属性に名前空間が設定されている場合は修飾名)
    ACharConstPtr value          // 設定する値(属性値)
);

引数

name

属性名(属性に名前空間が設定されている場合は修飾名)を指定します(Attribute ノードの nodeName 属性値を指定します)。

value

属性値を指定します(Attribute ノードの nodeValue 属性値を指定します)。

解説

この関数は、指定された名前を持つ属性に指定された値(属性値)を設定します。

SFXXMLNode::DOMNamedNodeMap オブジェクト内に name 引数に指定された名前を nodeName 属性値とする Attribute ノードが存在する場合は、 その属性値(nodeValue 属性値)は value 引数で指定した値に上書きされます。 存在しない場合は、引数に指定された内容で Attribute ノードを作成し、 SFXXMLNode::DOMNamedNodeMap オブジェクトに追加します。

[Note] エンティティ参照を含む属性値を設定する方法

任意の Text ノード(SFXXMLText)と EntityReference ノード(SFXXMLEntityReference) を子ノードに持つ Attribute ノード(SFXXMLAttribute)を この関数の引数にします。

[Note] 注意

この関数は、この Element ノードが表す要素の属性(属性名と属性値)を設定します。

[Note] 注意

属性に名前空間が設定されている場合、属性名には修飾名("名前空間接頭辞:ローカル名")を指定します。

[Note] 注意

Attribute ノードの名前は、XML 文書の属性名のことです。

[Note] 注意

ローカル名と名前空間 URI で属性を指定する場合は、 SFXXMLElement::SetAttributeNS 関数を使用します。

参照

SFXXMLElement::GetAttribute | SFXXMLElement::SetAttributeNS | SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::SetAttributeNode | SFXXMLElement::GetAttributeNode | SFXXMLElement::GetAttributes | SFXXMLElement::HasAttribute | SFXXMLElement::HasAttributes | SFXXMLElement::RemoveAttribute | SFXXMLElement::RemoveAttributeNode


SFXXMLElement::SetAttributeNS
指定されたローカル名と名前空間 URI を持つ属性に指定された値(属性値)を設定します。
[ public ]
Void SetAttributeNS(
    SFXAnsiStringConstRef localname      // 属性のローカル名
    SFXAnsiStringConstRef namespaceURI   // 属性の名前空間 URI
    ACharConstPtr value                  // 設定する値(属性値)
);

引数

localname

属性のローカル名を指定します。

namespaceURI

属性の名前空間 URI を指定します。

value

属性値を指定します。

解説

この関数は、指定されたローカル名と名前空間 URI を持つ属性に指定された値(属性値)を設定します。

SFXXMLNode::DOMNamedNodeMap オブジェクト内に指定されたローカル名と名前空間 URI を持つ属性の Attribute ノードが存在する場合は、 その属性値は value 引数で指定した値に変更されます。 存在しない場合は、引数に指定された内容で Attribute ノードを作成し、 SFXXMLNode::DOMNamedNodeMap オブジェクトに設定します。

[Note] エンティティ参照を含む属性値を設定する方法

任意の Text ノード(SFXXMLText)と EntityReference ノード(SFXXMLEntityReference) を子ノードに持つ Attribute ノード(SFXXMLAttribute)を この関数の引数にします。

[Note] 注意

この関数は、この Element ノードが表す要素の属性(属性名と属性値)を設定します。

[Note] 注意

名前(属性名)で属性を指定する場合は、 SFXXMLElement::SetAttribute 関数を使用します。

[Note] 注意

Attribute ノードの名前とは、XML 文書の属性名のことです。

[Note] 注意

属性名は、名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

参照

SFXXMLElement::SetAttribute | SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::SetAttributeNodeNS | SFXXMLElement::GetAttributeNS | SFXXMLElement::GetAttributeNodeNS | SFXXMLElement::GetAttributes | SFXXMLElement::HasAttributeNS | SFXXMLElement::HasAttributes | SFXXMLElement::RemoveAttributeNS


SFXXMLElement::SetAttributeNode
指定された Attribute ノードを設定します。
[ public ]
SFCError SetAttributeNode(
    SFXXMLAttributePtr newAttr   // 設定する Attribute ノード
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • newAttr 引数が Attribute ノードでないとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、引数に指定された Attribute ノードをこのノードが内部で保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクトに設定します。

指定された Attribute ノードの名前と同じ名前を持つ Attribute ノードが SFXXMLNode::DOMNamedNodeMap オブジェクト内に既に存在する場合、 既存の Attribute ノードは削除され、引数に指定した Attribute ノードに置き換えられます。

[Note] 注意

この関数は、この Element ノードが表す要素の属性を設定します(エンティティ参照を含む属性値を持つ属性も設定可能)。

[Note] 注意

Attribute ノードの名前は、XML 文書の属性名のことです。

[Note] 注意

属性名は、名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

[Note] 注意

指定された Attribute ノードの存在を調べるとき、 SFXXMLNode::DOMNamedNodeMap オブジェクトをローカル名と名前空間 URI で検索する場合は、 SFXXMLElement::SetAttributeNodeNS 関数を使用します。

使用例

// "isdn" という名前で Attribute ノードを作成する ( 属性値: "4-7741-1616-5" )
SFXXMLAttributePtr atti = document.CreateAttribute("isdn","4-7741-1616-5");

// Element ノード(book) に Attribute ノードを追加する
book->SetAttributeNode(atti);

参照

SFXXMLElement::SetAttributeNodeNS | SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::SetAttribute | SFXXMLElement::GetAttribute | SFXXMLElement::GetAttributeNode | SFXXMLElement::GetAttributes | SFXXMLElement::HasAttribute | SFXXMLElement::HasAttributes | SFXXMLElement::RemoveAttribute | SFXXMLElement::RemoveAttributeNode


SFXXMLElement::SetAttributeNodeNS
指定された Attribute ノードを設定します。
[ public ]
SFCError SetAttributeNodeNS(
    SFXXMLAttributePtr newAttr   // 設定する Attribute ノード
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • newAttr 引数が Attribute ノードでないとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、引数に指定された Attribute ノードをこのノードが内部で保持する、 SFXXMLNode::DOMNamedNodeMap オブジェクトに設定します。

SFXXMLNode::DOMNamedNodeMap オブジェクト内に指定された Attribute ノードと同じローカル名と名前空間 URI を持つ Attribute ノードが存在する場合、既存の Attribute ノードは削除され、引数に指定した Attribute ノードに置き換えられます。

[Note] 注意

この関数は、この Element ノードが表す要素の属性を設定します(エンティティ参照を含む属性値を持つ属性も設定可能)。

[Note] 注意

指定された Attribute ノードの存在を調べるとき、 SFXXMLNode::DOMNamedNodeMap オブジェクトを名前(属性名)で検索する場合は、 SFXXMLElement::SetAttributeNode 関数を使用します。

[Note] 注意

Attribute ノードの名前とは、XML 文書の属性名のことです。

[Note] 注意

属性名は、名前空間が設定されている場合、修飾名("名前空間接頭辞:ローカル名")になる場合もあります。

参照

SFXXMLElement::SetAttributeNode | SFXXMLNode::DOMNamedNodeMap | SFXXMLElement::SetAttributeNS | SFXXMLElement::GetAttributeNS | SFXXMLElement::GetAttributeNodeNS | SFXXMLElement::GetAttributes | SFXXMLElement::HasAttributeNS | SFXXMLElement::HasAttributes | SFXXMLElement::RemoveAttributeNS