* xml [#y2ca296e] libxml2について ** xmlの作り方 [#a2720416] ANAROOTでcsvなどを読み込んでXMLの様な構造にするためにはどうしたもんかと調べていたところ、http://xmlsoft.org/examples/ のtree2.cがまさにそれ! 以下の様なプログラムを書くとXMLファイルができる。 xmlNodePtr node; xmlDocPtr doc = xmlNewDoc((xmlChar*)"1.0");//1.0 is XML version xmlNodePtr rootNode = xmlNewNode(NULL,(xmlChar*)"dataroot"); xmlDocSetRootElement(doc,rootNode); xmlNodePtr Node = xmlNewNode(NULL,(xmlChar*)"NEBULA"); xmlNewChild(Node,NULL,(xmlChar*)"ID",(xmlChar*)"1"); xmlAddChild(rootNode,Node); xmlNewChild(Node,NULL,(xmlChar*)"geo",(xmlChar*)"32"); xmlAddChild(rootNode,Node); //output for check xmlSaveFormatFileEnc("aaa.xml", doc, "UTF-8", 1); xmlFreeDoc(doc); xmlCleanupParser(); xmlMemoryDump(); これを実行すると以下の様なaaa.xmlができる。 <?xml version="1.0" encoding="UTF-8"?> <dataroot> <NEBULA> <ID>1</ID> <geo>32</geo> </NEBULA> </dataroot> ちなみにMakefileには以下の様に書く。 CXXFLAGS=$(shell root-config --cflags) $(shell xml2-config --cflags ) LDFLAGS=$(shell root-config --glibs) $(shell xml2-config --libs) ROOTのTXMLNodeを使用するときにはMakefileに -lXMLParser を追加する必要あり。automakeでないと顕に書いてあげないとダメなのかな?