summaryrefslogtreecommitdiff
path: root/packages/libxml/examples/io2.pas
blob: ef03867445d777e13573c27d565b0d6a70f3d83e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
(**
 * section: InputOutput
 * synopsis: Output to char buffer
 * purpose: Demonstrate the use of xmlDocDumpMemory
 *          to output document to a character buffer
 * usage: io2
 * test: io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp
 * author: John Fleck
 * copy: see Copyright for the status of this software.
 *)

program io2;

{$mode objfpc}

uses
  ctypes,
  xml2,
  exutils,
  SysUtils;

var
  n: xmlNodePtr;
  doc: xmlDocPtr;
  xmlbuff: xmlCharPtr;
  buffersize: cint;

begin
  (*
   * Create the document.
   *)
  doc := xmlNewDoc('1.0');
  n := xmlNewNode(nil, 'root');
  xmlNodeSetContent(n, 'content');
  xmlDocSetRootElement(doc, n);

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

  (*
   * Free associated memory.
   *)
  xmlFree(xmlbuff);
  xmlFreeDoc(doc);
end.