当前位置: 首页 > news >正文

阿里网站制作需要多少钱机械网站 英文

阿里网站制作需要多少钱,机械网站 英文,想找人做网站怎么了解,前端开发和网站建设安装 TinyXml2 Git 源码下载地址:https://github.com/leethomason/tinyxml2 步骤1#xff1a;首先#xff0c;你需要下载tinyxml2的源代码。你可以从Github或者源代码官方网站下载。并上传至/usr/local/source_code/ 步骤2#xff1a;下载完成后#xff0c;需要将源代码解…安装 TinyXml2 Git 源码下载地址:https://github.com/leethomason/tinyxml2 步骤1首先你需要下载tinyxml2的源代码。你可以从Github或者源代码官方网站下载。并上传至/usr/local/source_code/ 步骤2下载完成后需要将源代码解压可以使用以下命令 tar -zxvf tinyxml2-8.1.0.tar.gz步骤3解压后切换到源代码目录 cd tinyxml2-8.1.0步骤4执行make make install  命令进行安装 make make install温馨提示完成以上步骤后在/usr/local/lib下会生成libtinyxml2.so动态库和/usr/local/include下生成tinyxml2.h头文件。你可以使用以下命令查看是否安装成功 ls /usr/local/lib | grep tinyxml2 ls /usr/local/include | grep tinyxml2 如果看到libtinyxml2.so和tinyxml2.h则说明成功安装了tinyxml库。 TinyXml2 库 简介 TinyXML2 是简单实用的开源的 CXML 文件解析库可以很方便的应用到现有的项 目之中。 TinyXML2 解析器相对 TinyXML1 在代码上是完全重写使其更适合于游戏开发 中使用。它使用更少的内存更快并使用更少的内存分配。 由于 XML 的树状结构TinyXML2 将 XML 的节点抽象为 XMLNodeXML 中除了把属 性 key-value 抽象为 XMLAttribute 类型外其余的都看作 XMLNode 的子类首先将整个 XML 文档抽象为 XMLDocument将声明部分抽象为 XMLDeclaration将注释抽象为 XMLComment将元素抽象为 XMLElement将文本抽象为 XMLText。   核心节点、元素、属性和值 XMLAttribute 是解析 XML 的属性的类XML 中的属性都与 XML 的 Element 绑定并且为 key-value 类型。 XMLComment       主要是处理 XML 注释的类注释的存储形式为。 XMLDeclaration 主要是处理 XML 中声明的类声明的存储形式为? declaration ?。 XMLDocument  代表 XML 整个实体TinyXML2 中只有 XMLDocument 类可以被实例化其他的类必 须通过 XMLDocument 提供的 new 方法进行实例化而不能直接实例化。XMLNode 的其他实体类把构造函数定义为 protected不能被外部实例化这样保证使用 XMLDocument 进行内存的管理避免产生内存泄漏的风险。 XMLElement    XMLElement 类是 XMLNode 中最重要的一个类其存储方式有foo/和foo/foo 两 种 形 式 它 包 含 了 一 个 XMLAttribute 的 根 指 针 这 个 root 指 针 指 向 XMLAttribute 的第一个属性键值对。 XMLHandle        主要用来访问元素。 XMLNode     是几乎 XML 所有元素(XMLAttribute 除外)的基类XML 本质是一种树形结构而 整个 XML 就是由许多的节点(XMLNode)组成在 TinyXML2 中每个 XMLNode 节点都 保存了父亲、前驱、后继、孩子头节点和孩子尾节点信息便于查询、插入、检 索。 XMLPrinter 是 XMLVisitor 类的子类主要实现的写 XML 的功能其提供了两种书写方式一 是构建 XMLDocument二是直接 push 字段。 XMLText 主要是处理 XML 文本的类文本信息又分为 CDATA 和普通文本。CDATA 是有专属的 开始字符![CDATA[而普通的文本存储形式如text。 XMLUnknown       存储形式为! unknown。 XMLVisitor 访问者模式的基类它主要定义了访问者的接口而在 XMLNode 的子类的 accept 方法中调用这些方法来完成对自身的访问。   示例代码 前提条件在/usr/local/source_code 创建目录tinyxml_demmo并创建tinyXmlDemo.cpp文件文件内容如下: #include iostream #include tinyxml2.h #include stdio.h #include stdlib.husing namespace tinyxml2;/* enum XMLError {XML_SUCCESS 0,XML_NO_ATTRIBUTE,XML_WRONG_ATTRIBUTE_TYPE,XML_ERROR_FILE_NOT_FOUND,XML_ERROR_FILE_COULD_NOT_BE_OPENED,XML_ERROR_FILE_READ_ERROR,XML_ERROR_PARSING_ELEMENT,XML_ERROR_PARSING_ATTRIBUTE,XML_ERROR_PARSING_TEXT,XML_ERROR_PARSING_CDATA,XML_ERROR_PARSING_COMMENT,XML_ERROR_PARSING_DECLARATION,XML_ERROR_PARSING_UNKNOWN,XML_ERROR_EMPTY_DOCUMENT,XML_ERROR_MISMATCHED_ELEMENT,XML_ERROR_PARSING,XML_CAN_NOT_CONVERT_TEXT,XML_NO_TEXT_NODE,XML_ELEMENT_DEPTH_EXCEEDED,XML_ERROR_COUNT }; *///创建XML文件 int createXML(const char* xmlPath) {XMLDocument doc;if (XML_ERROR_FILE_NOT_FOUND ! doc.LoadFile(xmlPath)) {std::cout file has been existed ! std::endl;return 0;}//添加声明 ?xml version1.0 encodingUTF-8 ?XMLDeclaration *declaration doc.NewDeclaration();doc.InsertFirstChild(declaration);XMLElement *root doc.NewElement(Users);doc.InsertEndChild(root);XMLElement *userNode doc.NewElement(User);//添加属性userNode-SetAttribute(Name, milo);userNode-SetAttribute(Password, pwd);root-InsertEndChild(userNode);return doc.SaveFile(xmlPath); }void loadXML(const char* xmlPath) {XMLDocument doc;if (doc.LoadFile(xmlPath) ! XML_SUCCESS) {std::cout load xlm file failed std::endl;return;}XMLPrinter printer;doc.Print( printer);std::cout printer.CStr(); }//添加性别号码邮箱 再添加一个用户 int addXML1(const char* xmlPath) {XMLDocument doc;if (doc.LoadFile(xmlPath) ! XML_SUCCESS) {std::cout load xlm file failed std::endl;return -1;}XMLElement *root doc.RootElement();XMLElement *userNode root-FirstChildElement(User);XMLElement *gender doc.NewElement(Gender);XMLText* genderText doc.NewText(man);gender-InsertFirstChild(genderText);userNode-InsertFirstChild(gender);XMLElement *mobile doc.NewElement(Mobile);mobile-InsertFirstChild(doc.NewText(186****3143));userNode-InsertEndChild(mobile);XMLElement *email doc.NewElement(Email);email-InsertFirstChild(doc.NewText(472251823qq.com));userNode-InsertEndChild(email);XMLElement *userNode2 doc.NewElement(User);userNode2-SetAttribute(Name, king);userNode2-SetAttribute(Password, pwd2);root-InsertEndChild(userNode2);XMLElement *mobile2 doc.NewElement(Mobile);mobile2-InsertFirstChild(doc.NewText(186****3143));userNode2-InsertEndChild(mobile2);return doc.SaveFile(xmlPath); }//在性别后面添加年龄再添加一个号码 int addXML2(const char* xmlPath) {XMLDocument doc;if (doc.LoadFile(xmlPath) ! XML_SUCCESS){std::coutload xml file failedstd::endl;return false;}XMLElement* rootdoc.RootElement();XMLElement* userNoderoot-FirstChildElement(User);XMLElement* gender userNode-FirstChildElement(Gender);XMLElement* age doc.NewElement(Age);age-InsertFirstChild(doc.NewText(18));userNode-InsertAfterChild(gender,age);XMLElement* mobile userNode-FirstChildElement(Mobile);mobile-SetAttribute(Location,home);XMLElement* mobile1 doc.NewElement(Mobile);mobile1-SetAttribute(Location,company);mobile1-InsertFirstChild(doc.NewText(186****3143));userNode-InsertAfterChild(mobile, mobile1);return doc.SaveFile(xmlPath); }//删除第一个号码删除第二个号码的属性 int deleteXML(const char* xmlPath) {XMLDocument doc;if (doc.LoadFile(xmlPath) ! XML_SUCCESS) {std::cout load xlm file failed std::endl;return -1;}XMLElement *root doc.RootElement();XMLElement *userNode root-FirstChildElement(User);XMLElement *mobile userNode-FirstChildElement(Mobile);userNode-DeleteChild(mobile);XMLElement *mobile2 userNode-FirstChildElement(Mobile);mobile2-DeleteAttribute(Location);return doc.SaveFile(xmlPath); }//将milo的年龄改为10000岁将king的号码改为8888结尾 int updateXML(const char* xmlPath) {XMLDocument doc;if (doc.LoadFile(xmlPath) ! XML_SUCCESS) {std::cout load xlm file failed std::endl;return -1;}XMLElement *root doc.RootElement();XMLElement *userNode root-FirstChildElement(User);while (userNode ! NULL) {if (0 strncmp(milo, (userNode-Attribute(Name)), 11)) {userNode-FirstChildElement(Age)-SetText(10000);userNode userNode-NextSiblingElement();} else if (0 strncmp(king, (userNode-Attribute(Name)), 11)) {userNode-FirstChildElement(Mobile)-SetText(186****8888);userNode userNode-NextSiblingElement();} else {userNode userNode-NextSiblingElement();}}return doc.SaveFile(xmlPath); }//将milo的信息打印出来 int selectXML(const char* xmlPath) {XMLDocument doc;if(doc.LoadFile(xmlPath)!XML_SUCCESS){std::coutload xml file failedstd::endl;return false;}XMLElement* rootdoc.RootElement();XMLElement* userNoderoot-FirstChildElement(User);while(userNode ! NULL){if( 0 strncmp(milo,(userNode-Attribute(Name)),11)){std::cout userNode-Attribute(Name) std::endl;std::cout userNode-Attribute(Password) std::endl;std::cout userNode-FirstChildElement(Age)-GetText() std::endl;std::cout userNode-FirstChildElement(Gender)-GetText() std::endl;std::cout userNode-FirstChildElement(Mobile)-GetText() std::endl;std::cout userNode-FirstChildElement(Email)-GetText() std::endl;userNode userNode-NextSiblingElement();} else {userNode userNode-NextSiblingElement();}}return 0; }int main( int argc, const char ** argv ) {char xmlPath[] ./0voice.xml;/*创建*/createXML(xmlPath);loadXML(xmlPath);printf(------------------------------\n);/*增*/addXML1(xmlPath);loadXML(xmlPath);printf(------------------------------\n);addXML2(xmlPath);loadXML(xmlPath);printf(------------------------------\n);/*删*/deleteXML(xmlPath);loadXML(xmlPath);printf(------------------------------\n);/*改*/updateXML(xmlPath);loadXML(xmlPath);printf(------------------------------\n);/*查*/selectXML(xmlPath);return 0; }源码编译执行如下指令 g tinyXmlDemo.cpp -o tinyXmlDemo -L/usr/local/lib/ -ltinyxml2执行效果截图 [rootlocalhost tinyxml_demmo]# g tinyXmlDemo.cpp -o tinyXmlDemo -L/usr/local/lib/ -ltinyxml2 [rootlocalhost tinyxml_demmo]# ll 总用量 120 -rw-r--r--. 1 root root 168 10月 23 15:36 parseXml.xml -rwxr-xr-x. 1 root root 110536 10月 23 15:48 tinyXmlDemo -rw-r--r--. 1 root root 7091 10月 23 15:47 tinyXmlDemo.cpp [rootlocalhost tinyxml_demmo]# ./tinyXmlDemo ?xml version1.0 encodingUTF-8? UsersUser Namemilo Passwordpwd/ /Users ------------------------------ ?xml version1.0 encodingUTF-8? UsersUser Namemilo PasswordpwdGenderman/GenderMobile186****3143/MobileEmail472251823qq.com/Email/UserUser Nameking Passwordpwd2Mobile186****3143/Mobile/User /Users ------------------------------ ?xml version1.0 encodingUTF-8? UsersUser Namemilo PasswordpwdGenderman/GenderAge18/AgeMobile Locationhome186****3143/MobileMobile Locationcompany186****3143/MobileEmail472251823qq.com/Email/UserUser Nameking Passwordpwd2Mobile186****3143/Mobile/User /Users ------------------------------ ?xml version1.0 encodingUTF-8? UsersUser Namemilo PasswordpwdGenderman/GenderAge18/AgeMobile186****3143/MobileEmail472251823qq.com/Email/UserUser Nameking Passwordpwd2Mobile186****3143/Mobile/User /Users ------------------------------ ?xml version1.0 encodingUTF-8? UsersUser Namemilo PasswordpwdGenderman/GenderAge10000/AgeMobile186****3143/MobileEmail472251823qq.com/Email/UserUser Nameking Passwordpwd2Mobile186****8888/Mobile/User /Users ------------------------------ milo pwd 10000 man 186****3143 472251823qq.com
http://www.hkea.cn/news/14311805/

相关文章:

  • 定制化网站门户网站开发jz190
  • 中国风网站表现佛山论坛建站模板
  • 网站是否被k网站如何做等级保护
  • 在线网站做情侣头像中国建设银行官方网站下载安装
  • 站长之家网站素材wordpress title 8211
  • 深圳专业做公司网站找公司做网站需要注意什么
  • 泉州专业建站品牌ci设计
  • 网站建设费用价格明细表wordpress如何选择对应模板
  • 网站建设服务 杭州餐厅vi设计公司
  • 龙岩建网站搭建好ftp服务器 如何通过网站访问
  • 上传文章的网站app商城开发价格
  • 遂宁市建设局网站青海西宁高端网站建设
  • 专门做房产的网站做行业网站赚钱
  • 帮人做网站犯法wordpress页面透明度
  • 小公司网络组建规划seo服务顾问
  • 定制旅游网站建设方案网站搭建中114514
  • 网站切换中英文长沙房地产开发商排名
  • 外贸网站测速辽宁网站推广的目的
  • 网站建设的运营计划婚纱网站设计素材
  • 书城网站建设项目定义绍兴网站建设方案
  • app开发哪家公司比较专业沈阳专业seo关键词优化
  • 秦皇岛营销式网站微信公众号发文章教程
  • 网易云课堂的网站建设特点海南住房和城乡建设部网站
  • 做网站永久人力外包和劳务派遣哪个更好一些
  • 上海网站推广策划给网站底部做友情链接
  • 所得税 网站建设费中国建设银行网站宁波
  • 成都私人网站制作北京数字智慧展厅设计装修服务商
  • .net 大型网站开发顺德网站
  • 网站建设计划书兰州seo关键词优化
  • 马鞍山网站建设与制作竞价推广的本质是什么