LINUX.ORG.RU
Ответ на: комментарий от aho

Ага. Мне очень понравилась лёгкость установки этой мини-библиотеки.

pacify ★★★★★
() автор топика
Ответ на: комментарий от aho

Вот такой код получился:

#include <iostream>
#include <sstream>
#include <fstream>
#include <vector>

#include "rapidxml.hpp"
#include "rapidxml_print.hpp"

using namespace std;
using namespace rapidxml;

int main (int argc, char **argv) {
  char *filename_i_txt;
  if (argc < 2) {
    std::cout << argv[0] << " [filename_i_txt]" << "\n";
    return -1;
  }

  // Read file
  filename_i_txt = argv[1];
  ifstream f(filename_i_txt);
  string xml;
  string line;
  while (getline(f,line)) xml += line;
  std::vector<char> xml_copy(xml.begin(), xml.end());
  xml_copy.push_back('\0');

  // Parse and print file
  xml_document<> doc;
  doc.parse<0>(&xml_copy[0]);
  std::cout << doc;
  print(std::cout, doc, 0);

  return 0;
}
P.S. Просьба сильно не ругать ... Это мой первый опыт использования iostream и т.п. за последние 10 лет.

pacify ★★★★★
() автор топика
Ответ на: комментарий от Reset

> Если тебе надо получать данные из xml, то libxml2

Ткни в простой и доступный мануал по использованию libxml2 из C++.

pacify ★★★★★
() автор топика
Ответ на: комментарий от Reset

Так ведь есть

% eix libxmlpp
[I] dev-cpp/libxmlpp
     Available versions:  
	(0)	1.0.5
	(2.6)	2.32.0 ~2.32.0-r1 2.34.1 2.34.2
	{debug doc}
     Installed versions:  2.34.2(2.6)(21:27:22 23/10/11)(doc)
     Homepage:            http://libxmlplusplus.sourceforge.net/
     Description:         C++ wrapper for the libxml2 XML parser library

fat_angel ★★★★★
()
Ответ на: комментарий от Reset

> также как и из Си

Всё-таки, есть «простой и доступный мануал» по использованию libxml2 из Си/Си++?

pacify ★★★★★
() автор топика

http://www.codesynthesis.com/products/xsde/ - это мне посоветовали в похожей теме. Вроде бы то, что вам нужно.

Хотя сам выбрал SAX в инкарнации QSimpleReader, т.к. XML Schema для моего формата XML составить не удалось (а XSDE нужно его скармливать). Натрахался с этим SAX вдоволь, конечно, получив фееречискую вермишель вместо кода - но зато мгновенно любые файлики грузит.

anarelian
()
Ответ на: комментарий от indie

> boost property_tree если точнее

он использует RapidXML

aho
()
Ответ на: комментарий от indie

> Примеры на оффсайте не?

Не. Как человек, писавший биндинг к libxml2, решительно заявляю - понять эту библиотеку без чтений исходников решительно невозможно. А исходники там те ещё. Как вариант можно взять исходники какого-нибудь толкового биндинга и смотреть как было сделано там, но только зачем это нужно, если можно воспользоватся уже готовым биндингом?

Для C++ очень вменяемая была xmlwrapp, но когда я с ней работал она была сильно не законченна, а автор её забросил. Но потом работы вроде были продолжены здесь: https://github.com/vslavik/xmlwrapp.

archimag ★★★
()
Ответ на: комментарий от indie

> свой велосипед

Ну т.е. посмотреть нельзя?

Знал бы про boost property_tree, не заморачивался бы.


Хм, а при чём здесь это? С другой стороны, если было нужно только это, то тогда понятно почему хватило стандартной доки.

archimag ★★★
()
Ответ на: комментарий от indie

> Там все просто было, файлы небольшие

Я начинаю понимать всё меньше. Как простота связана с размером?

boost::property_tree умеет xml читать.


Да, я в курсе, только boost::property_tree не является какой-либо альтернативой xml.

archimag ★★★
()
Ответ на: комментарий от archimag

Можно прочесть документ целиком в память. Если использовать поточный интерфейс, то теряется гибкость, т.к. необходимо импелементить для различный форматов свой ридер.

Нашел: http://www.assembla.com/code/JetFire/subversion/nodes/libconfig

indie
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.