PDOM

Há alguns anos atrás comecei a criar uma implementação simplificada para manipulação de XML’s em C++, na época a única forma “fácil” era utilizando a libxml2.
O tempo passou e agora notei que era hora de publicá-la, então há algumas semanas atrás eu reescrevi ela completamente para poder liberar opensource, dado que a primeira versão tinha sido desenvolvida para fins comerciais.
Acredito que agora ela chega perto da implementação DOM presente em qualquer engine javascript para browsers web, facilitando bastante a manipulação destes arquivos.
Por enquanto ela ainda não está thread safe, não tem autoconf nem automake, e provavelmente nem vai ter, visto que eu abomino estes caras.
Eu hospedei ela no google code, a URL é: http://code.google.com/p/pdom/

Exemplo de utilização:

DomTree *html = new DomTree("html","utf-8","1.0");
DomElement *body = html->newElement("body");
body->setAttribute("bgcolor","black");
DomElement *h1 = body->newElement("h1");
h1->setValue("teste de html");
cout << html->xml(true) << endl;

O resultado será:

<?xml version="1.0" encoding="utf-8"?>
<html>
<body bgcolor="black"><h1>teste de html</h1>
</html>

Ela manipula uma série de tipos de dados através do SetValue, basicamente os principais tipos de números, endereços ipv6, time_t's e o que mais eu achar necessário no futuro.
Se alguém usar favor deixar um comentário para eu saber, a licença é BSD então pode usar em software comercial que não é necessário abrir os fontes ;)

Area de discussão - Deixa um comentário