ホーム > デベロッパ > SophiaFramework > BREW C++ 逆引きコード集

BREW C++ プログラミング : SophiaFramework 逆引き FAQ・コード集

XML 文書を作成する

SFXXMLDocument クラスを使って、 XML 文書を作成します。

SFCError error; // エラー値

// XML 文書を作成する
SFXXMLDocument document;

// XML 文書のバージョンを設定する
document.SetVersion("1.0");
// COLLECTION 要素を作成する
SFXXMLElementPtr boot = document.CreateElement("COLLECTION");
if (boot == null) {
    return;
}
// ルート要素に COLLECTION 要素を追加する
error = document.AppendChild(SFXXMLNodePtr(boot));
if (error != SFERR_NO_ERROR) {
    return;
}
// COLLECTION 要素に属性を追加する
boot->SetAttribute("xmlns:dt", "urn:schemas-microsoft-com:datatypes");
// DATE 要素を作成する
SFXXMLElementPtr element = document.CreateElement("DATE");
if (element == null) {
    return;
}
// DATE 要素の属性を追加する
element->SetAttribute("dt:dt", "datetime");
// DATE 要素のテキスト情報を追加する
error = element->AppendChild(SFXXMLNodePtr(
    document.CreateTextNode("1998-10-13T15:56:00")));
if (error != SFERR_NO_ERROR) {
    return;
}
// COLLECTION 要素に DATE 要素を追加する
error = boot->AppendChild(SFXXMLNodePtr(element));
if (error != SFERR_NO_ERROR) {
    return;
}
// BOOK 要素を作成する
SFXXMLElementPtr book = document.CreateElement("BOOK");
if (book == null) {
    return;
}
// COLLECTION 要素に BOOK 要素を追加する
error = boot->AppendChild(SFXXMLNodePtr(book));
if (error != SFERR_NO_ERROR) {
    return;
}

// "<TITLE>Cosmos</TITLE>" を作成する
element = document.CreateElement("TITLE");
if (element == null) {
    return;
}
error = element->AppendChild(SFXXMLNodePtr(document.CreateTextNode("Cosmos")));
if (error != SFERR_NO_ERROR) {
    return;
}
error = book->AppendChild(SFXXMLNodePtr(element));
if (error != SFERR_NO_ERROR) {
    return;
}
// "<AUTHOR>Carl Sagan</AUTHOR>" を作成する
element = document.CreateElement("AUTHOR");
if (element == null) {
    return;
}
error = element->AppendChild(SFXXMLNodePtr(document.CreateTextNode("Carl Sagan")));
if (error != SFERR_NO_ERROR) {
    return;
}
error = book->AppendChild(SFXXMLNodePtr(element));
if (error != SFERR_NO_ERROR) {
    return;
}
// "<PUBLISHER>Ballantine Books</PUBLISHER>" を作成する
element = document.CreateElement("PUBLISHER");
if (element == null) {
    return;
}
error = element->AppendChild(SFXXMLNodePtr(document.CreateTextNode("Ballantine Books")));
if (error != SFERR_NO_ERROR) {
    return;
}
error = book->AppendChild(SFXXMLNodePtr(element));
if (error != SFERR_NO_ERROR) {
    return;
}
// XML 文書を保存する
error = document.Save("book.xml");
if (error != SFERR_NO_ERROR) {
    return;
}
作成した XML 文書
<?xml version='1.0'?>
<COLLECTION
   xmlns:dt="urn:schemas-microsoft-com:datatypes">
  <DATE dt:dt="datetime">1998-10-13T15:56:00</DATE>
  <BOOK>
    <TITLE>Cosmos</TITLE>
    <AUTHOR>Carl Sagan</AUTHOR>
    <PUBLISHER>Ballantine Books</PUBLISHER>
  </BOOK>
</COLLECTION>