XML概述、格式、解析-WEB

XML概述

  • XML(Extensible Markup Language)

    可扩展的标识语言

    数据传输的一种格式

    树形结构(节点)

  • 优点

    解析的更快 : 使用标签语言,能够很快定位

    占用空间小 : 纯文本格式

    可读性强 : 带有名字的标签我们都很喜欢

    跨平台性 : 只要有解析的库文件,无论什么系统,什么语言都可以无障碍的通信

    流行 : 现在最流行的一种数据传输格式

XML的格式

  • 所有元素都须有关闭标签

  • 标签对大小写敏感

  • 标签没有被预定义(自己命名)

  • 第一句格式必须为 <?xml version="1.0"?>

  • 文档必须有根元素的单一标签对

  • 每个标签都可以有自己的属性

  • 通常不需要手动创建XML

XML的应用场合

  • WEB客户端和服务器数据的格式

  • 广泛作为网络之间的数据格式

  • 可以在互不兼容的系统间交换数据

  • 对数据库支持不好的系统中用XML保存数据

  • 用来作为配置文档

  • 能够用来显示您的技术很高深(0

XML解析-WEB

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

CGI读取XML

  • open -> read -> printf

JS解析XML

  • 获取XML文档

    var XMLDoc = XMLHttpRequest.responseXML;

  • 获取文档中内容

    XMLDoc.getElementsByTagName("blackbeetle");

##XML解析-C语言

相关类型

  • xmlDocPtr代表一个XML文档的指针类型

  • xmlNodePtr代表一个节点的指针类型

打开XML

  • xmlDocPtr xmldoc=xmlParseFile(“file_name”);

获得根节点

  • xmlNodePtr cur=xmlDocGetRootElement(xmldoc);

  • cur=cur->xmlChildrenNode;//子节点集合

  • cur=cur->next; //下一个字节点

其他常用解析函数

  • char* value = (char*)xmlNodeGetContent(cur);//得到节点中的信息

  • xmlFree(value); //free得到的数据(必须free)

  • xmlFreeDoc(doc); //释放xml解析库所用资源

  • xmlKeepBlanksDefault(0); //去除空格

  • xmlCleanupParser();

  • xmlStrcmp(curNode->name, BAD_CAST “root”); //字符串比较 BAD_CAST 宏定义 强制转为XML字符串

XML生成-C语言

生成版本号1.0

  • xmlDocPtr doc = xmlNewDoc(BAD_CAST"1.0");

创建新节点

  • root = xmlNewNode(NULL, BAD_CAST"rfid_class");

配置根节点

  • xmlDocSetRootElement(doc, root);

添加子节点

  • xmlAddChild(root, node);

为节点添加节点名以及内容

  • xmlNewTextChild(node, NULL, BAD_CAST “class_name”, BAD_CAST(“text”));

保存文件

  • xmlSaveFormatFileEnc(xml_name, doc, “utf-8”, 1);

  • xmlSaveFile(xml_name, doc);

释放文档内节点动态申请的内存

  • xmlFreeDoc(doc);

libXML的移植

libxml 是一个xml的c语言版的解析器

鼠标宏 - - 89504e470d0a1a0a0000000d4948445200000030000000300802000000d8606ed0000000097048597300000ec400000ec401952b0e1b00000528494441545885cd984b2c3b5f14c7ef996a3de34d1b1a5a1ba95a908844ac88b0b0a8e7825810c1c22352dd0a36421a2a56363616121261e1950891088285d85858205122ded17854db39bfc5fc7f9331d33badaabfdf77d18cebdc733ff79c73e7de3b8088e45f12f3db0062fd73402101f7743a9dc7c7c7e3e3e3e7e7e72121216b6b6bc121425f625956d4323737979797171111c13bd16ab53efdf829df40425d5d5d9597978ba604003a9dee1780fafbfbbdc638b8407ed5d0ebeb6b6e6eeec9c9894cd2fdaa0f3fe41b0811b55aede3e3a3f45f001044144ebe977d7e7efed3d393bccdf3f37390787cadb2a4a4245a4783c1b0b4b4c4b2ac74197e473e80b8b10180fbe51fe6e7e7830821945c0df5f5f5f1345c2cb907bbdd9e9292128cf478138df4e3e32339399937e3b19a9a9a7e28369ca840e3e3e352fad6d6d68047f2b3daa840393939221a86615e5e5e0206f253d41ababcbc14b51416160af72fa1dc6e7745458552a944443eb95ea552a9666666640ca8110a0911b3ceccccd062fef1f121378640d1d1d1f211a2be183d1e8f68ae898989f2b30f8aa829c35f3ada5223244dd9fdfdfd0fc3102203141b1b2b4ad0c4c484574bae9045c60127979a32b55a7d7777276cd9dcdc74bbddd2c80100c3304545450a8542d80800ebebeb6eb7fb6b44b46a1f1e1e961a9bcd6691192b90d4496262a2c883cf554605723a9df1f1f152a6b6b636798f42c5c5c5050d8865d99e9e1ee2ad1aeeefef85f190d910820ce472b9bc024546466e6c6cc8fb0d3e10a7cece4e69d6784a83c1303d3d7d7777e776bbff2720fcbccb4aa3c5ada6a4a4247f801886f92e10cbb2efefef6ab5da6b9c7844bd5eefb5bbf41da15028e447f471eb0080d0d0d08b8b0bbd5e7f7979e9f59a216dc4bf7bfed9d999e83dc430beae15f2bc4299cd66516078fdcecd1511ed76bbc160100101002d6501e86b9f635253538f8f8fa7a6a6b2b2b2f8fa40449665bfe44746015e3df95e6f6f6f37373784109d4ef78340f8f9248a9483a9b49df3c695b9b40bcd8f50d4947577775badd6ffa8295e00a0b2b2d26ab5a2e04a29a411cd766c6caca3a3431e885ad47abdbeac
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onnx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值