linux内核读取xml文件,linux 下用libxml2读取xml文件实例

#include

#include

#include

#include

using namespace std;

//编译选项

gcc `xml2-config --cflags --libs` testxml.cpp

g++ `xml2-config --cflags --libs` testxml.cpp

g++ `xml2-config --cflags --libs` testxml.cpp

g++ `xml2-config --cflags --libs` testxml.cpp

g++ `xml2-config --cflags --libs` testxml.cpp

g++ `xml2-config --cflags --libs` testxml.cpp

void printAttribute(xmlTextReaderPtr reader)

{

if(1 == xmlTextReaderHasAttributes(reader))

{

xmlChar *name,*value;

int res = xmlTextReaderMoveToFirstAttribute(reader);

while(1 == res)

{

name = (xmlChar*)xmlTextReaderConstName(reader);

value = (xmlChar*)xmlTextReaderConstValue(reader);

fprintf(stderr, "\tattribute=[%s],value=[%s]\n", name, value);

res=xmlTextReaderMoveToNextAttribute(reader);

}

xmlTextReaderMoveToElement(reader);

}

}

void printNode(xmlTextReaderPtr reader)

{

const xmlChar *name,*value;

name=xmlTextReaderConstName(reader);

if (xmlTextReaderNodeType(reader) == XML_READER_TYPE_ELEMENT)

{

fprintf(stderr, "startMarkup=%s",name);

printAttribute(reader);

}

else if(xmlTextReaderNodeType(reader)==XML_READER_TYPE_END_ELEMENT)

{

//fprintf(file,"endMarkup=%s",name);

}

else

{

fprintf(stderr, "flag=%s", name);

}

if(xmlTextReaderHasValue(reader))

{

value=xmlTextReaderConstValue(reader);

fprintf(stderr, "\tvalue=%s", value);

}

fprintf(stderr, "\n");

}

int main(int argc, char** argv)

{

static char memory[] = "<?xml version = \"1.0\" encoding = \"utf-8\" ?>"

""

""

"";

xmlTextReaderPtr reader;

reader = xmlReaderForMemory(memory, strlen(memory), NULL, "UTF-8", 0);

if (reader == NULL)

{

cout << "xml file format error!!!!" << endl;

return -1;

}

int ret=xmlTextReaderRead(reader);

while(ret == 1)

{

printNode(reader);

ret=xmlTextReaderRead(reader);

}

//element = xmlTextReaderName(reader);

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值