C用libxml2获取元素的未知属性值

yaohacker0225 2012-10-26 09:18:44
<book page="588", size="16K">,
这个book节点只是xml的一部分,book节点是从网络上接收到的。
其中的page的值,size的值都有可能随时变化,
现在要获得这个page,size的值,你用libxml2的api的话,
是要元素的值是确定的,那这个不确定的值怎么获得啊?
...全文
76 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2012-10-26
  • 打赏
  • 举报
回复
[code=C/C++]
#include <stdio.h>

#include <libxml/parser.h>
#include <libxml/tree.h>

int main(int argc, char *argv[])
{
xmlChar xmlbuf[] =
"<?xml version=\"1.0\" encoding=\"gb2312\"?>"
"<book page=\"588\" size=\"16K\"/>";
xmlDocPtr doc;
xmlNodePtr node;
xmlAttrPtr attr;
xmlChar *data;

doc = xmlParseDoc(xmlbuf);
node = xmlDocGetRootElement(doc);

attr = node->properties;

while (attr) {
data = xmlGetProp(node, attr->name);
printf("name=%s data=%s\n", attr->name, data);
xmlFree(data);
attr = attr->next;
}

xmlFreeDoc(doc);
return 0;
}
[/Code]
xiaoxiao8310 2012-10-26
  • 打赏
  • 举报
回复
<book page="588", size="16K">
中间有逗号不符合xml格式吧?
page和size的值要作为属性要读写.writeAttributes
十八道胡同 2012-10-26
  • 打赏
  • 举报
回复
page size这2个tag不变化 就应该可以的吧。
值变化应该不影响的。
你在试试
yaohacker0225 2012-10-26
  • 打赏
  • 举报
回复
谢谢大家,尤其是灵魂守卫大仙,太给力了,是我理解错了,xmlGetProp那个函数,你的程序很给力,谢谢!

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧