類xml資料格式解析

2022-07-24 19:18:14 字數 3950 閱讀 4762

需要解析一種類xml的資料檔案,資料格式1如下:

//

資料域,多個

phi rcs ang12

3234

phi rcs ang34

5456

資料格式2:

#xtype

//comment

[condition]

項1=值1

項2=值2

[/condition]

[mea]

key3=value3

key4=value4

[/mea]

[data]

phi rcs ang11

1222

[/data]

[data]

phi rcs ang31

1422

[/data]

該資料格式類似xml,我們需要解析的是head中的所有標籤,及標籤中的鍵值對(key=value),並將data域中的資料儲存成浮點型陣列。

採用類似xml的解析方式,遞迴進行解析

具體**如下:

#ifndef myparsegjbdata_h_20170114

#define myparsegjbdata_h_20170114#include

#include

#include

#include

#include

#include

using

namespace

std;

/*file format1:phi rcs ang

1 1 1

2 2 2

*/typedef

struct

stmydatalabel

void

clear()

content.clear();

values.clear();

keyval.clear();

subitems.clear();

}friend ostream& operator

<<(ostream& myout,stmydatalabel&m_data)

myout

myout

int curdidx = 0

;

for(vector::iterator fitr = m_data.values.begin(); fitr != m_data.values.end(); fitr++)

}myout

return

myout;

}}stmydatalabel;

class

mydataparse

void

init()

}void print(ostream&myout)

bool parse(char*filename)

return

flag;

}bool parselabel(istream& myin,stmydatalabel&label)

else

continue

; }

else

}else

else

label.label =lablename;}}

else

else}}

else

else

//header

else}}

}while

(flag);

}//判斷字串是不是數字

bool isnum(string

str)

};/*

file format2:

#xtype

//comment

[condition]

項1=值1

項2=值2

[/condition]

[mea]

key3=value3

key4=value4

[/mea]

[data]

phi rcs ang

1 1 1

2 2 2

[/data]

*/class

mydataparse2

void

init()

void print(ostream&myout)

bool parse(char*filename)

bool flag = true

;

while(!myin.eof() &&flag)

return

flag;

}bool parselabel(istream& myin,stmydatalabel&label)

else

label.label =lablename;

}else

else}}

else

else

//header

else}}

}while(!myin.eof());

}};#endif

測試(命令列方式)

mydataparse parse;

parse.init();

parse.parse(

"test.txt

");//待解析的

資料檔案

parse.print(cout);

測試資料:

phi rcs ang12

3234

phi rcs ang34

5456

//

test12.txtphi rcs ang12

3234

phi rcs ang34

5456

//

test21.txt

#xtype

//comment

[condition]

項1=值1

項2=值2

[/condition]

[mea]

key3=value3

key4=value4

[/mea]

[data]

phi rcs ang11

1222

[/data]

[data]

phi rcs ang31

1422

[/data]

//

test22.txt

#xtype

//comment

[condition]

項1=值1

項2=值2

[/condition]

[group]

[part1]

key3=value3

[/part1]

[part2]

key4=value4

key5=value5

[/part2]

[/group]

[data]

phi rcs ang11

1222

[/data]

[data]

phi rcs ang31

1422

[/data]

資料格式解析(C )

資料格式解析 c 1.開發環境code blocks13.12,win7作業系統 2.實現功能 gps資料資訊型別常見的有6種 資訊型別 英文語義 中文語義 gprmc recommended minimum specific gps transit data rmc 推薦定位資訊 gpvtg tr...

YUV資料格式解析

文章 詳解yuv420資料格式 1.yuv簡介 yuv定義 分為三個分量,y 表示明亮度 luminance或luma 也就是灰度值 而 u 和 v 表示的則是色度 chrominance或chroma 作用是描述影像色彩及飽和度,用於指定畫素的顏色。yuv格式 有兩大類 planar和packed...

解析JSON資料格式

比起xml,json的主要優勢在於它的體積更小,在網路上傳輸的時候可以更省流量,但缺點在於,他的語義性較差,看起來不如xml直觀。官方提供的jsonobject谷歌開源庫的gson第三方開源庫,jackson fastjson 下面使用jsonobject和gson分別解析這組資料.private ...