前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework 4.1
SFXXMLElement
[XML] Element ノードを表すクラスです。
#include <SFXXMLElement.hpp>
class SFXXMLElement : public SFXXMLNode;
SFMTYPEDEFCLASS(SFXXMLElement)

継承図

SFXXMLElement クラスの継承図

協調図

SFXXMLElement クラスの協調図

解説

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

Element ノードには、SFXXMLElement::SetAttributeNodeSFXXMLElement::SetAttribute 関数を使って、Attribute ノード(SFXXMLAttribute)を設定できます。

Element ノードに設定された Attribute ノードは、SFXXMLElement::GetAttributeNodeSFXXMLElement::GetAttributes 関数を使って取得します。

参照

SFXXMLNode | SFXXMLAttribute | SFXXMLCDATASection | SFXXMLComment | SFXXMLDocument | SFXXMLDocumentFragment | SFXXMLDocumentType | SFXXMLEntity | SFXXMLEntityReference | SFXXMLNotation | SFXXMLProcessingInstruction | SFXXMLText

メンバ

コンストラクタ/デストラクタ
SFXXMLElement( SFXXMLDocumentPtr owner , SFXAnsiStringConstRef name )
SFXXMLElement( SFXXMLDocumentPtr owner , SFXAnsiStringConstRef name , SFXAnsiStringConstRef namespaceURI )
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 )
名前を指定して属性値を取得します。
SFXXMLAttributePtr GetAttributeNode( SFXAnsiStringConstRef name )
名前を指定して Attribute ノードを取得します。
DOMNamedNodeMapPtr GetAttributes( Void )
Element ノードに含まれるすべての Attribute ノードを取得します。
DOMNodeListPtr GetChildNodes( Void )
すべての子ノードを取得します。
DOMNodeListPtr GetElementsByTagName( SFXAnsiStringConstRef name )
指定したタグ名の Element ノードをすべて取得します。
SFXXMLNodePtr GetFirstChild( Void )
最初の子ノードを取得します。
SFXXMLNodePtr GetLastChild( Void )
最後の子ノードを取得します。
ACharConstPtr GetLocalName( Void )
ローカル名を取得します。
ACharConstPtr GetName( Void )
ノードの名前を取得します。
ACharConstPtr GetNamespaceURI( Void )
名前空間 URI を取得します。
SFXXMLNodePtr GetNextSibling( Void )
次の兄弟ノードを取得します。
ACharConstPtr GetNodeName( Void )
ノードの名前を取得します。
NodeType GetNodeType( Void )
ノード タイプを取得します。
SFXXMLNodePtr GetParentNode( Void )
親ノードを取得します。
ACharConstPtr GetPrefix( Void )
名前空間接頭辞を取得します。
SFXXMLNodePtr GetPreviousSibling( Void )
前の兄弟ノードを取得します。
Bool HasAttribute( SFXAnsiStringConstRef name )
指定した名前の Attribute ノードを持つかどうかを判定します。
Bool HasAttributes( Void )
Attribute ノードを持つかどうかを判定します。
Bool HasChildNodes( Void )
子ノードを持つかどうかを判定します。
SFCError InsertBefore( SFXXMLNodeConstPtr newchild , SFXXMLNodeConstPtr refchild )
ノードを挿入します。
Void RemoveAttribute( SFXAnsiStringConstRef name )
指定した名前の属性を削除します。
SFXXMLAttributePtr RemoveAttributeNode( SFXXMLAttributePtr oldAttr )
指定した Attribute ノードを削除します。
SFCError RemoveChild( SFXXMLNodeConstPtr oldchild )
子孫ノードも含めて子ノードを削除します。
SFCError ReplaceChild( SFXXMLNodeConstPtr newchild , SFXXMLNodeConstPtr oldchild )
子ノードを置換します。
Void SetAttribute( SFXAnsiStringConstRef name , ACharConstPtr value )
属性の名前を指定して属性値を設定します。
SFCError SetAttributeNode( SFXXMLAttributePtr newAttr )
Attribute ノードを設定します。
ACharConstPtr GetNodeValue( Void ) (SFXXMLNode から継承)
ノードの値を取得します。
SFXAnsiString GetText( Void ) (SFXXMLNode から継承)
ノード テキストを取得します。
Bool IsSameNode( SFXXMLNodeConstPtr other ) (SFXXMLNode から継承)
指定したノードと同一であるかを判定します。
Void SetNodeValue( ACharConstPtr value ) (SFXXMLNode から継承)
ノードに値を設定します。
SFCError SetText( SFXAnsiStringConstRef text ) (SFXXMLNode から継承)
ノード テキストを設定します。
DOMNamedNodeMap (SFXXMLNode から継承)
複数の DOM ノードを名前で管理するためのクラスです。
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             // 子ノードを再帰的にコピーするかどうか
);

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

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

戻り値

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

解説

newchild ノードをコピーせずにそのまま追加します。

newchild ノードが DOM ツリー内に存在する場合、newchild ノードは DOM ツリーから削除されます。

参照

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

参照

SFXXMLNode::CloneNode | SFXXMLNode


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

戻り値

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

参照

SFXXMLNode::EqualNode | SFXXMLNode


SFXXMLElement::GetAttribute
名前を指定して属性値を取得します。
[ public, const ]
ACharConstPtr GetAttribute(
    SFXAnsiStringConstRef name   // 属性の名前
);

戻り値

指定した名前の属性値を返します。属性値がない場合は null を返します。

解説

[Note] 注意
属性の名前として修飾名(名前空間接頭辞とローカル名の対)も使えます。

使用例

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

参照

SFXXMLElement::GetAttributes | SFXXMLElement::GetAttributeNode | SFXXMLElement::SetAttribute | SFXXMLElement::SetAttributeNode | SFXXMLElement::HasAttribute | SFXXMLElement::HasAttributes | SFXXMLElement::RemoveAttribute | SFXXMLElement::RemoveAttributeNode


SFXXMLElement::GetAttributeNode
名前を指定して Attribute ノードを取得します。
[ public, const ]
SFXXMLAttributePtr GetAttributeNode(
    SFXAnsiStringConstRef name   // Attribute ノードの名前
);

戻り値

指定した名前を持つ Attribute ノードを返します。存在しない場合は null を返します。

解説

[Note] 注意
Attribute ノードの名前とは、XML 文書の属性名のことです。
[Note] 注意
Attribute ノードの名前として修飾名(名前空間接頭辞とローカル名の対)も指定できます。

使用例

// "xmlns:dt" Attribute ノードを取得する 
SFXXMLAttributePtr atti = boot->GetAttributeNode("xmlns:dt");

参照

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


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

戻り値

Element ノードに含まれるすべての Attribute ノードを SFXXMLNode::DOMNamedNodeMap へのポインターとして返します。 Attribute ノードが存在しない場合、 null を返します。

使用例

// 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::SetAttribute | SFXXMLElement::SetAttributeNode | SFXXMLElement::HasAttribute | SFXXMLElement::HasAttributes | SFXXMLElement::GetAttributeNode | SFXXMLElement::RemoveAttribute | SFXXMLElement::RemoveAttributeNode


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

戻り値

指定したノードのすべての子ノードを SFXXMLNode::DOMNodeList へのポインターとして返します。子ノードがないときは 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 ノードをすべて取得します。
[ public, const ]
DOMNodeListPtr GetElementsByTagName(
    SFXAnsiStringConstRef name   // タグ名
);

戻り値

タグ名が一致するすべての Element ノードを返します。

解説

指定したタグ名を持つすべての Element ノードを SFXXMLNode::DOMNodeList へのポインターとして返します。リストはタグの出現順になっています。

使用例

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());     
    }
}

参照

SFXXMLNode::DOMNodeList | SFXXMLDocument::GetElementsByTagName


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

戻り値

最初の子ノードを返します。子ノードがないときは null を返します。

参照

SFXXMLNode::GetFirstChild | SFXXMLNode


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

戻り値

最後の子ノードを返します。子ノードがないときは null を返します。

参照

SFXXMLNode::GetLastChild | SFXXMLNode


SFXXMLElement::GetLocalName
ローカル名を取得します。
[ public, const ]
ACharConstPtr GetLocalName(Void);

戻り値

Element ノードの名前(要素名)に設定されているローカル名を返します。

解説

Element ノードの名前(要素名)が修飾名である場合、 名前は名前空間接頭辞とローカル名の対からなります。

[Note] 注意
Element ノードの名前とは XML 文書の「要素名」のことです。

参照

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


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

解説

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

[Note] 注意
Element ノードの名前とは XML 文書の「要素名」のことです。
[Note] 注意
名前空間が設定されている場合、修飾名(名前空間接頭辞とローカル名)が返されます。

使用例

<?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::GetLocalName | SFXXMLElement::GetNodeName | SFXXMLElement::GetPrefix | SFXXMLElement::GetNamespaceURI


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

戻り値

Element ノードの名前(要素名)に設定されている名前空間 URIを返します。

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

参照

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


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

戻り値

指定したノードの次の兄弟ノードを返します。次の兄弟ノードが存在しないときは 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
ノードの名前を取得します。
[ public, virtual, const ]
ACharConstPtr GetNodeName(Void);

解説

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

[Note] 注意
Element ノードの名前とは XML 文書の「要素名」のことです。
[Note] 注意
名前空間が設定されている場合、修飾名(名前空間接頭辞とローカル名)が返されます。

参照

SFXXMLElement::GetName | SFXXMLNode


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

戻り値

ELEMENT_NODE を返します。

参照

SFXXMLNode::NodeType | SFXXMLNode::GetNodeType | SFXXMLNode


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

戻り値

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

参照

SFXXMLNode::GetParentNode | SFXXMLNode


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

戻り値

Element ノードの名前(要素名)に設定されている名前空間接頭辞を返します。 設定されていないときは null を返します。

解説

Element ノードの名前(要素名)が修飾名である場合、名前は名前空間接頭辞とローカル名の対からなります。

[Note] 注意
Element ノードの名前とは XML 文書の「要素名」のことです。

参照

SFXXMLElement::GetName


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

戻り値

指定したノードの前の兄弟ノードを返します。前の兄弟ノードがないときは null を返します。

参照

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


SFXXMLElement::HasAttribute
指定した名前の Attribute ノードを持つかどうかを判定します。
[ public, const ]
Bool HasAttribute(
    SFXAnsiStringConstRef name   // 属性の名前
);

戻り値

  • 持つとき : true
  • 持たないとき : false

使用例

// "isdn" という名前の Attribute ノードを持つかどうかを判定する
if(book->HasAttribute("isdn") == false){
        ....
}

参照

SFXXMLElement::HasAttributes | SFXXMLElement::SetAttribute | SFXXMLElement::SetAttributeNode | SFXXMLElement::SetAttribute | SFXXMLElement::SetAttributeNode | SFXXMLElement::GetAttribute | SFXXMLElement::GetAttributes | SFXXMLElement::RemoveAttribute | SFXXMLElement::RemoveAttributeNode


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

使用例

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

参照

SFXXMLElement::HasAttribute | SFXXMLElement::GetAttribute | 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
  • 引数が不正であるとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

解説

newchild ノードを refchild ノードの直前に挿入します。 refchild 引数が null で指定された場合、子ノードの末尾に newchild ノードを挿入します。

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

newchild ノードが既に DOM ツリー内に存在する場合は、最初にその子ノードを削除します。

使用例

// 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   // 属性の名前
);

解説

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

[Note] 注意
属性の名前として修飾名(名前空間接頭辞とローカル名の対)も使えます。

使用例

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

参照

SFXXMLElement::GetAttribute | SFXXMLElement::SetAttributeNode | SFXXMLElement::GetAttributeNode | SFXXMLElement::SetAttribute | SFXXMLElement::RemoveAttributeNode


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

戻り値

削除された Attrubite ノード ( SFXXMLAttribute ) を返します。

使用例

// "dt:dt" という Attrubite ノードを取得する
SFXXMLAttributePtr atti = book->GetAttributeNode("dt:dt");
// 取得した Attrubite ノードを Element ノードから削除する
book->RemoveAttributeNode(atti);
//  Attrubite ノードを削除する
delete atti;

参照

SFXXMLAttribute | SFXXMLElement::GetAttribute | SFXXMLElement::SetAttributeNode | SFXXMLElement::GetAttributeNode | SFXXMLElement::SetAttribute | SFXXMLElement::RemoveAttribute


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

戻り値

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

参照

SFXXMLNode::RemoveChild| SFXXMLNode


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

戻り値

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

使用例

// name ノードを作成する   
SFXXMLElementPtr name = document.CreateElement("NAME");
// テキストを作成し、name ノードに追加する
name->AppendChild(SFXXMLNodePtr(document.CreateTextNode("Cosmos")));
// book ノードの最初の子ノードを name ノードで置換する
book->ReplaceChild(name, book->GetFirstChild());

参照

SFXXMLNode::ReplaceChild| SFXXMLNode


SFXXMLElement::SetAttribute
属性の名前を指定して属性値を設定します。
[ public ]
Void SetAttribute(
    SFXAnsiStringConstRef name   // 属性の名前
    ACharConstPtr value          // 設定する値
);

解説

同じ名前の属性が存在する場合は、その属性値は引数で指定した値に変更されます。

[Note] 注意
属性の名前として修飾名(名前空間接頭辞とローカル名の対)も使えます。
[Note] エンティティ参照を含む属性値を設定する方法

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

参照

SFXXMLElement::SetAttributeNode | SFXXMLElement::GetAttribute | SFXXMLElement::GetAttributeNode | SFXXMLElement::HasAttribute | SFXXMLElement::HasAttributes | SFXXMLElement::RemoveAttribute | SFXXMLElement::RemoveAttributeNode


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

戻り値

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

解説

同じ名前の Attribute ノードが存在する場合、既存の Attribute ノードは削除され、引数で指定した Attribute ノードに置き換えられます。

使用例

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

参照

SFXXMLElement::SetAttribute | SFXXMLElement::GetAttribute | SFXXMLElement::GetAttributeNode | SFXXMLElement::HasAttribute | SFXXMLElement::HasAttributes | SFXXMLElement::RemoveAttribute | SFXXMLElement::RemoveAttributeNode