因为上一篇已经写好了添加XML的元素。现在写添加属性就依葫芦画瓢了。代码里面有些重复的地方,其实可以进行优化。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<libxml/tree.h>
#include<libxml/parser.h>
int str_split(char *str,char str_list[][256]){
int i,j=0,k=0;
int len=strlen(str);
for(i=1;i<len;i++){
if(str[i]=='/'){
j++;
k=0;
}
else
str_list[j][k++]=str[i];
}
if(i==len)
return j+1;
return j;
}
//调用AddElement(root_node,str_list,0,n,tag,ele);
void AddElement(xmlNodePtr node,char str_list[][256],int depth,int n,char *tag,char *ele){
xmlNodePtr cur,parent_node,temp_node;
int find=0;
for(cur=node;cur;cur=cur->next)
if(xmlStrcmp(cur->name,BAD_CAST(str_list[depth]))==0){
find=1;
if(cur->children!=NULL){
AddElement(cur->children,str_list,depth+1,n,tag,ele);