代码拉取完成,页面将自动刷新
同步操作将从 Josin/fastxml 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/**
* Copyright @2019 Josin All Rights Reserved.
* Author: Josin
* Email : xeapplee@gmail.com
*
* Hello, This is the fast xml's parsing example
* To simplify the coding, the thing you want to do
* is to add some macros, Let's have a try.
*/
#include <stdio.h>
#include <xml_demo.h>
#include <time.h>
int main(int argc, char *argv[])
{
char *xml_str = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
"<information>\n"
" <name id=\"IDNAME\" ws=\"Haha\" ><!--<![CDATA[Josin]]><![CDATA[Josin]]>-->hello</name> bbb\n"
" <age a=\"A\">26</age>bsfsf\n"
"sf <age prop=\"price\">26.6</age>\n"
" <address province=\"Guangdong\">Shenzhen Guangdong</address>\n"
" <os attrs=\"ATTRs\">"
" fsfs<linux><!--<![CDATA[aa]]>-->hello[[<![CDATA[Hello World]]></linux>"
" <unix>aa</unix>fsf"
" <windows>bb</windows>"
" </os>"
"</information>";
CXML *xml = new_cxml_from_string2(xml_str, strlen(xml_str));
if ( !xml ) {
printf("{%s}\n", new_cxml_get_error());
trash_cxml(xml);
return 0;
}
CXML_root *root = NEW_CXML_root_FROM_DATA(xml->data);
printf("根节点信息\n---------------\n");
printf("节点名: %s\n", root->info->key->s);
printf("节点文本:%s\n", root->info->sval->s);
printf("\ninfo节点信息\n---------------\n");
CXML_info *info = NEW_CXML_info_FROM_DATA(root->info->val);
printf("%s: %s\n", info->name->key->s, info->name->sval->s);
printf("%s: %s\n", info->age->key->s, info->age->sval->s);
printf("%s: %s\n", info->age1->key->s, info->age1->sval->s);
printf("%s: %s\n", info->addr->key->s, info->addr->sval->s);
printf("\nos节点信息\n---------------\n");
CXML_os *os = NEW_CXML_os_FROM_DATA(info->os->val);
printf("%s: %s\n", os->lux->key->s, os->lux->sval->s);
printf("%s: %s\n", os->unx->key->s, os->unx->sval->s);
printf("%s: %s\n", os->windows->key->s, os->windows->sval->s);
printf("\n通过循环获取同一级的所有节点信息:\n--------------------------\n");
CXML_NODE *cnode;
CXML_ATTR *attr;
CXML_LOOP_FREACH_DATA(root->info->val, cnode) {
printf("%s:%s\n", cnode->key->s, cnode->sval->s);
CXML_LOOP_FREACH_ATTR(cnode->attrs, attr) {
printf("\t%s:%s\n", attr->key, attr->val);
} CXML_LOOP_FOREACH_END();
} CXML_LOOP_FOREACH_END();
TRASH_CXML_os(os);
TRASH_CXML_root(root);
TRASH_CXML_info(info);
trash_cxml(xml);
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。