一、c++讀取xml檔案
以讀取如下的xml檔案為例:
需要讀取的每個object節點下的bndbox的的四個int資料,但是不同的xml的object的個數不一致。
標頭檔案如下:
//開啟xml檔案需要載入的標頭檔案
#include
"tinystr.h"
#include
"tinyxml.h"
**如下:
bool
readparaxml
(string m_strxmlpath, vector
& vecnode)
tixmlelement* rootelement = document-
>
rootelement()
;//根目錄
tixmlelement* nextelement = rootelement-
>
firstchildelement()
;//根目錄下的第乙個節點層
//for(nextelement;nextelement;nextelement = nextelement->nextsiblingelement())
while
(nextelement!=
null
)//判斷有沒有讀完
//索引到xmin節點
tixmlelement* xminelemeng = boxelement-
>
firstchildelement()
;}nextelement = nextelement-
>
nextsiblingelement()
;}//釋放記憶體
delete pnode;
delete document;
cout <<
"完成xml的讀取"
<< endl;
return
true
;}
其中boxsize結構體的定義如下:
//box引數結構體
struct boxsize
;
幾個函式語句:
document-
>
rootelement()
;
作用:讀取xml的根節點
tixmlelement* nextelement = rootelement-
>
firstchildelement()
;
nextelement = nextelement-
>
nextsiblingelement
()
作用:nextsiblingelement()讀取當前節點這一層的下乙個節點(注意是當前這一層)。比如,如果讀到了source節點,再使用該函式就讀到了owner節點,但是如果使用firstchildelemnt()就讀到了該source節點下一層的第乙個節點database節點。
boxelement-
>
valuetstr
()
作用:獲取當前節點的名字,這樣可以判斷現在是都讀到了我想要讀的節點,比如讀到了source節點,返回是就是字串「source」。
xminelemeng-
>
gettext
()
作用:獲取當前節點中的資料值。比如讀到了xmin節點,就返回了節點中的這個int的資料值。
最後如果讀完了這一層的所有的節點,指標將為null。因此可以用來判斷該節點所在層的節點有沒有讀完。
C 使用XmlSerializer讀取Xml內容
1 book.xml檔案如下 asp.net 本質論劉湘 10.23 c 基礎孟第 50.28 2 根據book.xml 檔案生成架構檔案 book.xsd 在vs2010開啟book.xml檔案,vs2010的選單欄上出現乙個xml的選單,選擇 建立架構 vs2010會自動生成book.xsd檔案...
c 和opencv小知識 ORB特徵點匹配小流程
include include include using namespace cv using namespace std intmain if dist max dist cout min dist t max dist 但有時候最小距離會非常小,需要設定乙個經驗值作為下限 vector goo...
c 和opencv小知識 提取感興趣區域ROI
方法有很多最常用的和最方便的是通過擷取方式 格式一 img roi img rect x,y,width,height 格式二 img roi img range 行1,行2 range 列1,列2 想要獲取不同形狀可以把rect換成其他的形狀 重點 mat類似的區塊訪問 只建立了新的陣列頭,分配它...