- 論壇徽章:
- 0
|
請問哪位大俠有sco unix下xml打包、解包函數(shù)及文檔?
www.onlyit.cn 上有免費的orient類庫。
具體看
Orient類庫教材V2.1
Orient類庫手冊V2.1
- orient類庫中提供了對xml文件進行讀取、編輯的類TXml。
- xml文件由多個節(jié)點(TXmlNode)構(gòu)成。
- TXmlNode提供了節(jié)點名稱、取值、屬性的操作。同時 TXml也是從TXmlNode繼承下來的。
- 下面提供了2個例子。
- #include <xml.h>;
- void xml_create_demo()
- {
- TXml xml;
- TXmlNode * node,* sonnode;
- //創(chuàng)建注釋節(jié)點
- node=xml.Create_Comment("this is xml demo file");
- //作為第一層結(jié)點
- xml.Add_Node(node);
- //創(chuàng)建注釋節(jié)點
- node=xml.Create_Comment("base info of hangzhou city");
- //作為第一層結(jié)點
- xml.Add_Node(node);
- //下面創(chuàng)建主節(jié)點 hangzhou
- //創(chuàng)建一個組節(jié)點
- 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");
- //作為第一層結(jié)點
- xml.Add_Node(node);
- //hangzhou節(jié)點下掛上 street(街道) 節(jié)點
- //創(chuàng)建一個組節(jié)點
- sonnode=xml.Create_Node(Xml_Node_Type_Group);
- //設置名稱
- sonnode->;Set_Name("street");
- //作為第二層結(jié)點
- node->;Add_Node(sonnode);
- //hangzhou節(jié)點下掛上 area(行政區(qū)) 節(jié)點
- //創(chuàng)建一個組節(jié)點
- sonnode=xml.Create_Group("area");
- //作為第二層結(jié)點
- node->;Add_Node(sonnode);
- //列舉街道信息
- node=xml.Create_Node(Xml_Node_Type_Element);
- node->;Set_Name("wenyi");
- node->;Set_Value("文一街,人口8萬,有財經(jīng)學院");
- 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","東三弄,浙大附近"));
- //列舉行政區(qū)信息
- node=xml.Create_Node(Xml_Node_Type_Element);
- node->;Set_Name("xihu");
- node->;Set_Value("西湖區(qū),人口58萬,是最大的行政區(qū)");
- xml.Add_Node("hangzhou,area",node);
- node=xml.Create_Element("xiachen","下城區(qū),人口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();
- };
復制代碼 |
|