xml数据结构:
xmlChar:对char的基本代替,是一个UTF-8编码字符串中的一个字节
xmlDoc 和 xmlDocPtr: 树的结构
xmlNode 和 xmlNodePtr:单个节点的结构
生成xmldoc、获得根节点,获得子节点
- //4.解析xml字符串
- xmlDocPtrdoc=xmlParseMemory(pXml,length);
- //根据xmldoc获得xml的根节点
- xmlNodePtrcur=xmlDocGetRootElement(doc);
- //获得子节点:->children获得不是第一个子节点,必须用next才能获得第一个子节点
- cur=cur->children;
- cur=cur->next;
- //获得节点信息中的内容:注意释放资源
- xmlChar*key=xmlNodeListGetString(doc,cur->xmlChildrenNode,1);
- xmlFree(key);
- //获得节点信息属性的值:属性name,注意释放资源
- xmlChar*fversion=xmlGetProp(cur,"version");
- xmlFree(fversion);
- //根节点相关函数
- xmlNodePtrxmlDocGetRootElement(xmlDocPtrdoc)//获取文档根节点
- xmlNodePtrxmlDocSetRootElement(xmlDocPtrdoc,xmlNodePtrroot)//设置文档根节点
- //创建子节点相关函数
- xmlNodePtrxmlNewNode(xmlNsPtrns,constxmlChar*name)//创建新节点
- xmlNodePtrxmlNewChild(xmlNodePtrparent,xmlNsPtrns,85); font-weight:bold">constxmlChar*name,85); font-weight:bold">constxmlChar*content)//创建新的子节点
- xmlNodePtrxmlCopyNode(constxmlNodePtrnode,intextended)//复制当前节点
- //添加子节点相关函数
- xmlNodePtrxmlAddChild(xmlNodePtrparent,xmlNodePtrcur)//给指定节点添加子节点
- xmlNodePtrxmlAddNextSibling(xmlNodePtrcur,xmlNodePtrelem)//添加后一个兄弟节点
- xmlNodePtrxmlAddPrevSibling(xmlNodePtrcur,0); padding:0px; margin:0px; width:auto; border:0px">//添加前一个兄弟节点
- xmlNodePtrxmlAddSibling(xmlNodePtrcur,0); padding:0px; margin:0px; width:auto; border:0px">//添加兄弟节点
- //属性相关函数
- xmlAttrPtrxmlNewProp(xmlNodePtrnode,85); font-weight:bold">constxmlChar*value)//创建新节点属性
- xmlChar*xmlGetProp(xmlNodePtrnode,0); padding:0px; margin:0px; width:auto; border:0px">//读取节点属性
- xmlAttrPtrxmlSetProp(xmlNodePtrnode,0); padding:0px; margin:0px; width:auto; border:0px">//设置节点属性
- =xmlNodeListGetstring(doc,250)"> =xmlNodeContent(cur);
对一个xmldoc解析解析