- 论坛徽章:
- 0
|
请问哪位大侠有sco unix下xml打包、解包函数及文档?
www.onlyit.cn 上有免费的orient类库。
具体看
Orient类库教材V2.1
Orient类库手册V2.1
- orient类库中提供了对xml文件进行读取、编辑的类TXml。
- xml文件由多个节点(TXmlNode)构成。
- TXmlNode提供了节点名称、取值、属性的操作。同时 TXml也是从TXmlNode继承下来的。
- 下面提供了2个例子。
- #include <xml.h>;
- void xml_create_demo()
- {
- TXml xml;
- TXmlNode * node,* sonnode;
- //创建注释节点
- node=xml.Create_Comment("this is xml demo file");
- //作为第一层结点
- xml.Add_Node(node);
- //创建注释节点
- node=xml.Create_Comment("base info of hangzhou city");
- //作为第一层结点
- xml.Add_Node(node);
- //下面创建主节点 hangzhou
- //创建一个组节点
- node=xml.Create_Node(Xml_Node_Type_Group);
- //设置名称
- node->;Set_Name("hangzhou");
- //设置属性
- node->;Add_Property("zipcode","310000");
- node->;Add_Property("state","zhejiang");
- node->;Add_Property("country","china");
- //作为第一层结点
- xml.Add_Node(node);
- //hangzhou节点下挂上 street(街道) 节点
- //创建一个组节点
- sonnode=xml.Create_Node(Xml_Node_Type_Group);
- //设置名称
- sonnode->;Set_Name("street");
- //作为第二层结点
- node->;Add_Node(sonnode);
- //hangzhou节点下挂上 area(行政区) 节点
- //创建一个组节点
- sonnode=xml.Create_Group("area");
- //作为第二层结点
- node->;Add_Node(sonnode);
- //列举街道信息
- node=xml.Create_Node(Xml_Node_Type_Element);
- node->;Set_Name("wenyi");
- node->;Set_Value("文一街,人口8万,有财经学院");
- xml.Add_Node("hangzhou,street",node);
- node=xml.Create_Element("wener","文二街,人口12万,有商学院");
- xml.Add_Node("hangzhou,street",node);
- //复合用法
- (xml.Get_Node("hangzhou,street"))->;Add_Node(xml.Create_Element("dongsan","东三弄,浙大附近"));
- //列举行政区信息
- node=xml.Create_Node(Xml_Node_Type_Element);
- node->;Set_Name("xihu");
- node->;Set_Value("西湖区,人口58万,是最大的行政区");
- xml.Add_Node("hangzhou,area",node);
- node=xml.Create_Element("xiachen","下城区,人口51万");
- xml.Add_Node("hangzhou,area",node);
- xml.SaveToFile("hangzhou.xml");
- node=xml.Get_Node("hangzhou,street");
- if(node==NULL)
- printf("get fail\n");
- else
- {
- node=node->;Get_Node("dongsan");
- if(node==NULL)
- printf("get fail\n");
- else
- printf("value is %s\n",node->;mValue);
- };
- };
- void xml_read_demo()
- {
- TXml xml;
- TXmlNode * node;
- if(!xml.LoadFromFile("hangzhou.xml"))
- {
- printf("load xml fail and fail code is :%d fail_node_id: %s\n",
- xml.mError_Code,xml.mError_Node_Id);
- exit(0);
- };
- node=xml.Get_Node("hangzhou,street,wener");
- if(node==NULL)
- printf("cant get node\n");
- else
- printf("value is %s\n",node->;mValue);
- xml.SaveToFile("3.xml");
- };
- int main()
- {
- xml_create_demo();
- xml_read_demo();
- getchar();
- };
复制代码 |
|