吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1496|回复: 9
收起左侧

[C&C++ 原创] cpp解析xml文件

  [复制链接]
Panel 发表于 2023-12-2 21:10
本帖最后由 Panel 于 2023-12-2 21:17 编辑

最近在温习cpp 11的基础写的,只支持不重复元素的解析

<?xml version="1.0" encoding="UTF-8"?>
<library>
    <book>
        <title>Java Programming</title>
        <author>John Smith</author>
        <publication_year>2020</publication_year>
    </book>
</library>
#include <iostream>
#include <fstream>
using namespace std;

string findValue(const string& dst,const string& key)
{
        string keyend = R"(</)" + key;
        string keysymbol = key + R"(>)";

        int keypos = dst.find(keyend);
        int startpos = dst.find(keysymbol) + keysymbol.length();
        int endpos = keypos - startpos ;

        return dst.substr(
                startpos,
                endpos
        );
}

int main()
{
        ifstream inputfile("1.xml", ios::binary);
        inputfile.seekg(0, ios::end);
        streampos filesize = inputfile.tellg();
        inputfile.seekg(0, ios::beg);
        char* readbuf = new char[filesize];
        inputfile.read(readbuf, filesize);

        string library_value = findValue(readbuf, "library");
        string book_value = findValue(readbuf,"book");
        string title_value = findValue(readbuf, "title");
        string author_value = findValue(readbuf, "author");
        string publication_year_value = findValue(readbuf, "publication_year");
        delete[] readbuf;

        cout << "library_value:" << library_value <<  endl;
        cout << "book_value:" << book_value <<  endl;
        cout << "title_value:" << title_value <<  endl;
        cout << "author_value:" << author_value <<  endl;
        cout << "publication_year_value:" << publication_year_value <<  endl;
        cout << endl;

}

免费评分

参与人数 4吾爱币 +9 热心值 +3 收起 理由
yp17792351859 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
MakiseSatsuki + 1 用心讨论,共获提升!
hrh123 + 2 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

FruitBaby 发表于 2023-12-2 22:16
哦哦,原来如此,
FruitBaby 发表于 2023-12-2 21:21
 楼主| Panel 发表于 2023-12-2 21:27
SayHi1314 发表于 2023-12-3 11:01
学习一下
FelixLee 发表于 2023-12-3 13:03
对于重复元素会是什么情况?
 楼主| Panel 发表于 2023-12-3 14:53
FelixLee 发表于 2023-12-3 13:03
对于重复元素会是什么情况?

比如出现两个<book>a</book><book>b</book>
cfvgbhnj 发表于 2023-12-4 21:35
感谢发布原创作品,吾爱破解论坛因你更精彩!
tang2422067 发表于 2023-12-5 16:08
学到了 真厉害,
Shatskikh 发表于 2023-12-5 22:46
感谢分享源代码
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 00:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表