网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C/C++ > 正文
用c读取XML文件
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
= "";
}
else{
subroot = true;
next = false;
}
if (tname == rootName) {
p->nextsibling = NULL;
p->firstChild = NULL;
p = q;
poproot = true;
}
else if (tname == headName) {
q->nextsibling = NULL;
}
}
else
{
enoods = 0;
if (_fileCope[i] != ''/'')tmpstr += _fileCope[i];
}
}
delete s;
return *head;
}
bool xml::readfile_()
{
ifstream infile(_filename,ios::binary);
if (!infile) {
//AfxMessageBox("Openfile failed!");
return false;
}
bool lable = false;
string _tfc(""),_lable("");
char c;
while(infile.get(c))_tfc += c;
for (size_t i = 0; i < _tfc.size(); ++i){
if (_tfc[i] == '' '' || _tfc[i] == ''\n'' || _tfc[i] == ''\t'' || _tfc[i] == 0x09 || _tfc[i] == 0x0d)continue;
if (_tfc[i] == ''<'' && _tfc[i+1] == ''?'') {
lable = true;
}
else if (_tfc[i] == ''?'' && _tfc[i+1] == ''>'') {
lable = false;
_lable += _tfc[i];
_lable += _tfc[i+1];
i += 2;
continue;
}
else if (_tfc[i] == ''<'' && _tfc[i+1] == ''!'' && _tfc[i+2] == ''-'') {
lable = true;
}
else if (_tfc[i] == ''-'' && _tfc[i+1] == ''-'' && _tfc[i+2] == ''>''){
lable = false;
_lable += _tfc[i];
_lable += _tfc[i+1];
_lable += _tfc[i+2];
i += 3;
}
if (lable) _lable += _tfc[i];
else _fileCope += _tfc[i];
}
return true;
}
bool xml::findData(const char *nodeName)
{
CSNode *p = head;
string _nodeName = nodeName;
return true;
}
bool xml::findData(const char *parent, const char *child,string *data)
{
CSNode *p = head->firstChild;
string _parent(""),_child("");
bool isfound = false;
while (p != NULL) {
if (p->name == parent) {
p = p->firstChild;
while (p != NULL) {
if (p->name == child) {
*data = p->data;
return true;
}
else p = p->nextsibling;
}
}
else p = p->nextsibling;
}
return false;
}
void xml::allocate()
{
CSNode *p = head->firstChild;
while (p != NULL) {
CSNode *q = p->firstChild;
while (q != NULL) {
CSNode *s = q;
q = q->nextsibling;
if (s->name == "RecvPort") {
cout << "addd" << endl;
}
delete s;
}
CSNode *m = p;
p = p->nextsibling;
delete m;
}
delete head;
}

目前该程序只能解析3层结构的XML文件
 

  • 上一篇资讯: 经典c程序100例(1--10)
  • 下一篇资讯: 引用与指针的区别
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号