Poco庫XML檔案的生成與解析

2021-07-14 13:19:36 字數 2610 閱讀 4691

vs2010環境開發

注意:編譯時要記得新增靜態庫路徑,以及包含的標頭檔案路徑。如果要直接跑程式,需要將涉及的靜態庫的動態庫版本放置到程式所在的路徑下。以便程式自己可以找到。

#include "poco/dom/text.h"  

#include "poco/dom/element.h"

#include "poco/dom/comment.h"

#include "poco/dom/processinginstruction.h"

#include "poco/dom/attr.h"

#include "poco/dom/document.h"

#include "poco/autoptr.h"

#include "poco/dom/domwriter.h"

#include "poco/xml/xmlwriter.h"

#include "poco/filestream.h"

#include "poco/util/xmlconfiguration.h"

using poco::util::xmlconfiguration;  

using poco::autoptr;

#pragma comment(lib,"pocofoundation.lib")

#pragma comment(lib,"pocoxml.lib")

#pragma comment(lib,"pocoutil.lib")

xml檔案的生成**

autoptrpdoc = new poco::xml::document;  

autoptrmyroot = pdoc->createelement("root");

autoptrmychild = pdoc->createelement("child");

autoptrmygrandchild = pdoc->createelement("grandchild");

autoptrnamenode = pdoc->createtextnode("my_name_is_xiaoqiang");

autoptrpi = pdoc->createprocessinginstruction("xml","version='1.0' encoding='utf-8'" );

autoptrcomm = pdoc->createcomment("new_day");

poco::xml::domwriter write;

write.setoptions(poco::xml::xmlwriter::pretty_print);

poco::filestream ofs("./example.xml",std::ios::in);

write.writenode(ofs,pdoc);

xml檔案的讀取

autoptrpconfig(new xmlconfiguration("./example.xml"));  

//std::string prop1 = pconfig->getstring("prop1");

//int prop2 = pconfig->getint("prop2");

//std::string prop3 = pconfig->getstring("prop3");

//

//std::string prop4 = pconfig->getstring("prop3.prop4");

//prop4 = pconfig->getstring("prop3.prop4[@attr]");

//prop4 = pconfig->getstring("prop3.prop4[1][@attr]");

std::string prop1 = pconfig->getstring("child.grandchild");

int i=0;

//int prop2 = pconfig->getint("prop2");

//std::string prop3 = pconfig->getstring("prop3");

//

//std::string prop4 = pconfig->getstring("prop3.prop4");

//prop4 = pconfig->getstring("prop3.prop4[@attr]");

//prop4 = pconfig->getstring("prop3.prop4[1][@attr]");

最好要捕獲下異常,防止程式崩潰

std::string prop1;

trycatch(...)

附錄:

value1

123

<?xml version='1.0' encoding='utf-8'?>

my_name_is_xiaoqiang

生成XML檔案的步驟 解析XML檔案

生成xml檔案的步驟 1.初始化乙個xml的序列化器 xmlserializer serializer xml.newserializer 2.設定序列化器的引數 serializer.setoutput os,utf 8 3.寫資料 serializer.startdocument utf 8 t...

如何用pugixml庫生成xml檔案

pugixml是乙個開源的xml解析庫,只有三個檔案 pugiconfig.hpp pugixml.hpp pugixml.cpp 速度快,支援xpath。好吧,我懶得介紹了 網上介紹pugixml的地方一大堆,讀者們去搜一下就清楚了。pugixml的github位址如下 那麼怎麼用pugixml生...

XML的解析與生成

1.寫布局 2.業務邏輯 a.備份 1.封裝簡訊資料到list中 2.將list中的資料寫到xml檔案中。b.恢復 1.解析xml檔案中簡訊資料,封裝到list集合中 2.將解析資料列印。xmlserializer 使用xmlserializer來序列化xml檔案 public static boo...