Войти

Показать полную графическую версию : работа с XML на CPP


Vlad Drakula
13-01-2004, 20:07
как таботать с данными файлами?

ivank
14-01-2004, 00:49
Vlad Drakula
Есть такие штуки как DOM и SAX парсеры. Искать в гугле. Под виндой модно MSXML (искать в мсдн), под *никсами libxml и Xerces, искать гуглом. И ещё десятки и сотни других парсеров.

Ещё есть одна прога/либа, к сожалению забыл название, но не суть. Так вот скармливаешь ей DTD XML-ек, которые предстоит разбирать и на выходе имеешь кучку классов с ф-иями вида get_XXX, set_XXX, которые один в один отображают структуру XML-файла. К этому, разумеется, генерятся ф-ии парсинга/сериализации из/в XML.

XML - всего лишь текст, если хочешь можешь хоть регэкспами его править/разбирать :) Я когда был молодой и глупый (т.е. практически такой же как сейчас) сам писал разборщик XML-like конфигов, на всё про всё (т.е. с отладкой) ушло около двух часов. Разбиралось всё это дело в дерево, приблизительно такого формата:
struct Node
{
  std::map<std::string, smart_ptr<Node>> children;
  std::map<std::string, std::string> attributes;
  Node(const std::string & xml);
};

Добавлено:

десятки и сотни других парсеров.
Десятки и десятки, я хотел сказать.




© OSzone.net 2001-2012