ぼく用あれこれまとめ
TinyXML-2 使い方
最終更新:
bokuyo
-
view
TinyXML-2 使い方
- 導入方法は TinyXML-2 導入メモ を参考に。
- 以下にテストコードを書いていきます。次の3つを include している前提で書いていきます。
#include <iostream> #include <string> #include "tinyxml2.h"
.xml ファイルの読み込み - tinyxml2::XMLDocument::LoadFile
tinyxml2::XMLDocument doc; doc.LoadFile( "test.xml" );
.xml ファイルの内容を表示 - tinyxml2::XMLDocument::Print
tinyxml2::XMLDocument doc; doc.LoadFile( "test.xml" ); doc.Print();
文字列から読み込み - tinyxml2::XMLDocument::Parse
const char * pSource = "<html><head></head><body><p>hello, world!</p></body></html>"; tinyxml2::XMLDocument doc; doc.Parse(pSource); doc.Print();
ルート要素の取得と、要素内容の取得 - tinyxml2::XMLDocument::FirstChildElement
const char * pSource = "<title>The Marshmallow Times</title>"; tinyxml2::XMLDocument doc; doc.Parse(pSource); tinyxml2::XMLElement * elem = doc.FirstChildElement("title"); std::cout << elem->GetText() << std::endl; // "The Marshmallow Times"
要素内の要素を取得、要素名の取得 - tinyxml2::XMLElement::FirstChildElement
const char * pSource = "<book><title>The Marshmallow Times</title></book>"; tinyxml2::XMLDocument doc; doc.Parse(pSource); tinyxml2::XMLElement * elem = doc.FirstChildElement("book")->FirstChildElement("title"); std::cout << elem->Name() << std::endl; // "title" std::cout << elem->GetText() << std::endl; // "The Marshmallow Times"
要素の次の要素を取得 - tinyxml2::XMLElement::NextSiblingElement
const char * pSource = "<book><title>The Marshmallow Times</title><author>Lun Lun Yamamoto</author></book>"; tinyxml2::XMLDocument doc; doc.Parse(pSource); tinyxml2::XMLElement * elem = doc.FirstChildElement("book")->FirstChildElement(); std::cout << elem->Name() << std::endl; // "title" std::cout << elem->NextSiblingElement()->Name() << std::endl; // "author"
要素の追加 - tinyxml2::XMLElement::NewElement, tinyxml2::XMLElement::InsertEndChild
const char * pSource = "<book><title>The Marshmallow Times</title></book>"; tinyxml2::XMLDocument doc; doc.Parse(pSource); tinyxml2::XMLElement * root = doc.FirstChildElement(); tinyxml2::XMLElement * newElement = doc.NewElement( "author" ); root->InsertEndChild(newElement); doc.Print();
- tinyxml2::XMLElement::InsertFirstChild で要素の一番最初に挿入できる
現在の XML の内容を文字列として取得する - tinyxml2::XMLPrinter::CStr
const char * pSource = "<book><title>The Marshmallow Times</title></book>"; tinyxml2::XMLDocument doc; doc.Parse(pSource); tinyxml2::XMLPrinter streamer; doc.Print( &streamer ); std::cout << streamer.CStr() << std::endl;
要素の属性(Attribute)を取得 - tinyxml2::XMLElement::Attribute
const char * pSource = "<book title=\"The Marshmallow Times\"/>"; tinyxml2::XMLDocument doc; doc.Parse(pSource); tinyxml2::XMLElement * bookElem = doc.FirstChildElement("book"); const char * bookTitle = bookElem->Attribute("title"); if ( nullptr != bookTitle ) std::cout << bookTitle << std::endl; //The Marshmallow Times
See also
- http://www.grinninglizard.com/tinyxml2/index.html - TinyXML-2 の公式サイト