XML可扩展标记语言 -- 学习笔记一
一、定义: 可扩展标记语言 (Extensible Markup Language,XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。 xml文件格式如下: <?xml version="1.0" encoding="utf-8"?> <userdata createuser="false"> <dataconnection> <server>localhost</server> <uid>sa</uid> <pwd></pwd> </dataconnection> <net> <name>jiayuan</name> </net> </userdata> 二、语法: 在XML中,采用了如下的语法: 三、下载与安装LIBXML2和ICONV Libxml2是一个C语言的XML程序库,可以简单方便的提供对XML文档的各种操作,并且支持XPATH查询,以及部分的支持XSLT转换等功能。Libxml2的下载地址是http://xmlsoft.org/,完全版的库是开源的,并且带有例子程序和说明文档。最好将这个库先下载下来,因为这样可以查看其中的文档和例子。 四、简单xml操作例子 创建一个xml文档显得非常简单,其流程如下: 创建一个Win32控制台应用程序,源代码文件是CreateXmlFile.cpp,如下: #include "stdafx.h" #include <stdio.h> #include <libxml/parser.h> #include <libxml/tree.h> #include <iostream.h> int main() { //定义文档和节点指针 xmlDocPtr doc = xmlNewDoc(BAD_CAST"1.0");//xmlDoc是一个struct,保存了一个xml的相关信息,例如文件名、文档类型、子节点等等 xmlNodePtr root_node = xmlNewNode(NULL,BAD_CAST"root"); //设置根节点 xmlDocSetRootElement(doc,root_node); //在根节点中直接创建节点 xmlNewTextChild(root_node,NULL,BAD_CAST "newNode1",BAD_CAST "newNode1 content"); xmlNewTextChild(root_node,BAD_CAST "newNode2",BAD_CAST "newNode2 content"); xmlNewTextChild(root_node,BAD_CAST "newNode3",BAD_CAST "newNode3 content"); //创建一个节点,设置其内容和属性,然后加入根结点 xmlNodePtr node = xmlNewNode(NULL,BAD_CAST"node2"); xmlNodePtr content = xmlNewText(BAD_CAST"NODE CONTENT"); xmlAddChild(root_node,node); xmlAddChild(node,content); xmlNewProp(node,BAD_CAST"attribute",BAD_CAST "yes"); //创建一个儿子和孙子节点 node = xmlNewNode(NULL,BAD_CAST "son"); xmlAddChild(root_node,node); xmlNodePtr grandson = xmlNewNode(NULL,BAD_CAST "grandson"); xmlAddChild(node,grandson); xmlAddChild(grandson,xmlNewText(BAD_CAST "This is a grandson node")); //存储xml文档 int nRel = xmlSaveFile("CreatedXml.xml",doc); if (nRel != -1) { cout<<"一个xml文档被创建,写入"<<nRel<<"个字节"<<endl; } //释放文档内节点动态申请的内存 xmlFreeDoc(doc); return 1; }编译运行,会提示一个xml文档被创建,写入245个字节 注意:要将libxml2.lib和iconv.lib两个库文件拷到工程里面,且引入它们。还要设置#include <libxml/parser.h> #include <libxml/tree.h>引用路径。 打开CreatedXml.xml文件,内容如下: <?xml version="1.0" ?> - <root> <newNode1>newNode1 content</newNode1> <newNode2>newNode2 content</newNode2> <newNode3>newNode3 content</newNode3> <node2 attribute="yes">NODE CONTENT</node2> - <son> <grandson>This is a grandson node</grandson> </son> </root> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |