C用libxml2获取元素的未知属性值,该怎么处理
C用libxml2获取元素的未知属性值
<book page="588", size="16K">,
这个book节点只是xml的一部分,book节点是从网络上接收到的。
其中的page的值,size的值都有可能随时变化,
现在要获得这个page,size的值,你用libxml2的api的话,
是要元素的值是确定的,那这个不确定的值怎么获得啊?
------解决方案--------------------
page size这2个tag不变化 就应该可以的吧。
值变化应该不影响的。
你在试试
------解决方案--------------------
<book page="588", size="16K">
中间有逗号不符合xml格式吧?
page和size的值要作为属性要读写.writeAttributes
------解决方案--------------------
<book page="588", size="16K">,
这个book节点只是xml的一部分,book节点是从网络上接收到的。
其中的page的值,size的值都有可能随时变化,
现在要获得这个page,size的值,你用libxml2的api的话,
是要元素的值是确定的,那这个不确定的值怎么获得啊?
------解决方案--------------------
page size这2个tag不变化 就应该可以的吧。
值变化应该不影响的。
你在试试
------解决方案--------------------
<book page="588", size="16K">
中间有逗号不符合xml格式吧?
page和size的值要作为属性要读写.writeAttributes
------解决方案--------------------
- C/C++ code
#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; }