Grok 20.3.2
SimpleXmlParser.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016-2026 Grok Image Compression Inc.
3 *
4 * This source code is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License, version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This source code is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Affero General Public License for more details.
12 *
13 * You should have received a copy of the GNU Affero General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 */
17
18#pragma once
19
20#include <string>
21#include <vector>
22
23namespace grk
24{
25
26// Simple XML parser for S3 ListObjectsV2 response
28{
29public:
30 std::vector<std::string> keys;
31
32 bool parse(const std::string& xml)
33 {
34 keys.clear();
35 size_t pos = 0;
36 while((pos = xml.find("<Key>", pos)) != std::string::npos)
37 {
38 pos += 5;
39 size_t end = xml.find("</Key>", pos);
40 if(end == std::string::npos)
41 break;
42 keys.push_back(xml.substr(pos, end - pos));
43 pos = end + 6;
44 }
45 return !keys.empty();
46 }
47};
48
49} // namespace grk
Definition SimpleXmlParser.h:28
std::vector< std::string > keys
Definition SimpleXmlParser.h:30
bool parse(const std::string &xml)
Definition SimpleXmlParser.h:32
ResWindow.
Definition CompressedChunkCache.h:36