c 和opencv小知識 讀取xml格式檔案

2021-10-04 23:01:48 字數 1965 閱讀 9339

一、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類似的區塊訪問 只建立了新的陣列頭,分配它...