最近在做一些**移植工作,為了測試正確性,要拿同樣的輸入資料測試,於是打算使用xml來儲存資料,c++進行解析。簡單做個記錄。
資料來源使用python生成xml
目標是生成下面的樣子,直接看**吧,python這個xml庫用起來比較簡單,看個例子就會了。
c++解析xml (qt qdomdocument)
剛好機器裡有qt5的環境,索性就用這個解析(挺方便),先說明一下解析之後的資料結構。這裡point2f是為了我後面其他操作做準備,也可以換成別的。
// vector 幀 vector 視角影象 vector 人 vector joints
std:
:vector
:vector
:vector
:vector
:point2f>>
>> pointsset;
如圖,正常解析#include
#include
#include
#include
#include
#include
std:
:vector
:vector
:vector
:vector
:point2f>>
>> pointsset;
// 兩個索引,方便在遞迴過程中定位pointsset中的vector
int posematworkingframeindex =-1
;int posematworkingpersonindex =-1
;// 使用遞迴
void
iterposematxmldom
(qdomelement &docelem)
else
if(element.
tagname()
=="person"
)else
if(element.
tagname()
=="joints_data"
) pointsset.
at(posematworkingframeindex).at
(posematworkingpersonindex)
.emplace_back
(joints);}
iterposematxmldom
(element);}
node = node.
nextsibling()
;}}void
readposematxml
(const qstring &&filename)
qdomelement docelem = doc.
documentelement()
;iterposematxmldom
(docelem);}
intmain()
C 建立xml檔案
引言 隨著xml的普及以及在動態web應用程式中大量應用,如何通過.net建立,刪除,修改xml檔案變的也來也重要了。乙個簡單的概念是,xml檔案跟大的文字檔案並沒有什麼區別,同時它是先於.net出現,很多asp的開發者,當他需要程式輸出xml檔案的時候,通常都是用response.write 方法...
python讀取 建立XML檔案
python中定義了很多處理xml的函式,如xml.dom,它會在處理檔案之前,將根據xml檔案構建的樹狀資料存在記憶體。還有xml.sax,它實現了sax api,這個模組犧牲了便捷性,換取了速度和減少記憶體占用。本文將要說明的是xml.tree.elementtree的使用。與dom比較,它使用...
C 如何建立Xml檔案
xmltextwriter物件簡介 xmltextwriter物件包含了很多可用於在建立xml檔案時新增元素和屬性到xml檔案裡的方法,比較重要的有 writestartdocument 建立xml檔案首先就需要用到這個方法,它是在建立xml檔案的第一行 用來指定該檔案是xml檔案以及設定它的編碼型...