XML API в C? - PullRequest
       43

XML API в C?

4 голосов
/ 27 февраля 2009

Они все такие сложные? : http://msdn.microsoft.com/en-us/library/ms766497(VS.85).aspx

Просто нужно что-то базовое для создания XML на C.

Ответы [ 5 ]

7 голосов
/ 27 февраля 2009

Мне нравится libxml . Вот пример использования:

#include <libxml/parser.h>

int
main(void)
{

  xmlNodePtr root, node;
  xmlDocPtr doc;
  xmlChar *xmlbuff;
  int buffersize;

  /* Create the document. */
  doc = xmlNewDoc(BAD_CAST "1.0");
  root = xmlNewNode(NULL, BAD_CAST "root");

  /* Create some nodes */
  node = xmlNewChild(root, NULL, BAD_CAST "node", NULL);
  node = xmlNewChild(node, NULL, BAD_CAST "inside", NULL);
  node = xmlNewChild(root, NULL, BAD_CAST "othernode", NULL);

  /* Put content in a node: note there are special characters so 
     encoding is necessary! */
  xmlNodeSetContent(node, 
                xmlEncodeSpecialChars(doc, BAD_CAST "text con&tent and <tag>"));

  xmlDocSetRootElement(doc, root);

  /* Dump the document to a buffer and print it for demonstration purposes. */
  xmlDocDumpFormatMemory(doc, &xmlbuff, &buffersize, 1);
  printf((char *) xmlbuff);

}

Скомпилировано с помощью 'gcc -Wall -I / usr / include / libxml2 -c create-xml.c && gcc -lxml2 -o create-xml create-xml.o ', эта программа отобразит:

% ./create-xml   
<?xml version="1.0"?>
<root>
  <node>
    <inside/>
  </node>
  <othernode>text con&amp;tent and &lt;tag&gt;</othernode>
</root>

Для реального примера см. моя реализация из RFC 5388 .

4 голосов
/ 27 февраля 2009

Xerces как известно, попробуйте

3 голосов
/ 27 февраля 2009

MiniXML может быть тем, что вы ищете, если вам нужно что-то простое, легкое и C:

Мини-XML: облегченная библиотека XML

Mini-XML - это небольшая библиотека XML, которая Вы можете использовать для чтения и записи XML и XML-подобные файлы данных в вашем приложение, не требующее большого нестандартные библиотеки. Только мини-XML требуется компилятор, совместимый с ANSI C (GCC работает, как и большинство поставщиков ANSI C компиляторы) и программа make.

Однако есть тонна из них различной сложности и потребностей. MiniXML хорош тем, что ему не требуется больше, чем простой компилятор Ansi C. Многие из них требуют других библиотек или специальных компиляторов.

-Adam

1 голос
/ 27 февраля 2009
1 голос
/ 27 февраля 2009

Самый простой способ сделать XML на C - это высококачественный и бесплатный genx от Tim Bray: http://www.tbray.org/ongoing/When/200x/2004/02/20/GenxStatus

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...