mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-03 22:30:27 +02:00
* new libxml2 samples
git-svn-id: trunk@11634 -
This commit is contained in:
parent
52666b1dc0
commit
510e22e898
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -3292,6 +3292,8 @@ packages/libxml/examples/reader1.pas svneol=native#text/plain
|
||||
packages/libxml/examples/reader2.pas svneol=native#text/plain
|
||||
packages/libxml/examples/test1.xml svneol=native#text/plain
|
||||
packages/libxml/examples/test2.xml svneol=native#text/plain
|
||||
packages/libxml/examples/tree1.pas svneol=native#text/plain
|
||||
packages/libxml/examples/tree2.pas svneol=native#text/plain
|
||||
packages/libxml/fpmake.pp svneol=native#text/plain
|
||||
packages/libxml/src/HTMLparser.inc svneol=native#text/plain
|
||||
packages/libxml/src/HTMLtree.inc svneol=native#text/plain
|
||||
|
@ -259,178 +259,178 @@ UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
|
||||
endif
|
||||
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-haiku)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-darwin)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),avr-embedded)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),armeb-linux)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),armeb-embedded)
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2
|
||||
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
|
||||
endif
|
||||
override INSTALL_FPCPACKAGE=y
|
||||
ifdef REQUIRE_UNITSDIR
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
|
||||
[target]
|
||||
programs=reader1 reader2 io1 io2
|
||||
programs=reader1 reader2 io1 io2 tree1 tree2
|
||||
|
||||
[require]
|
||||
#packages=
|
||||
|
@ -32,7 +32,7 @@ var
|
||||
begin
|
||||
name := xmlTextReaderConstName(reader);
|
||||
if not assigned(name) then
|
||||
name := pchar('--'); // BAD_CAST !!!!
|
||||
name := BAD_CAST('--');
|
||||
|
||||
value := xmlTextReaderConstValue(reader);
|
||||
|
||||
|
76
packages/libxml/examples/tree1.pas
Normal file
76
packages/libxml/examples/tree1.pas
Normal file
@ -0,0 +1,76 @@
|
||||
(**
|
||||
* section: Tree
|
||||
* synopsis: Navigates a tree to print element names
|
||||
* purpose: Parse a file to a tree, use xmlDocGetRootElement() to
|
||||
* get the root element, then walk the document and print
|
||||
* all the element name in document order.
|
||||
* usage: tree1 filename_or_URL
|
||||
* test: tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp
|
||||
* author: Dodji Seketeli
|
||||
* copy: see Copyright for the status of this software.
|
||||
*)
|
||||
|
||||
program tree1;
|
||||
|
||||
{$mode objfpc}
|
||||
|
||||
uses
|
||||
ctypes,
|
||||
libxml2,
|
||||
exutils,
|
||||
SysUtils;
|
||||
|
||||
procedure print_element_names(a_node: xmlNodePtr);
|
||||
var
|
||||
cur_node: xmlNodePtr;
|
||||
begin
|
||||
cur_node := a_node;
|
||||
while assigned(cur_node) do
|
||||
begin
|
||||
if cur_node^._type = XML_ELEMENT_NODE then
|
||||
printfn('node type: Element, name: %s', [cur_node^.name]);
|
||||
|
||||
print_element_names(cur_node^.children);
|
||||
|
||||
cur_node := cur_node^.next;
|
||||
end;
|
||||
end;
|
||||
|
||||
var
|
||||
doc: xmlDocPtr;
|
||||
root_element: xmlNodePtr;
|
||||
|
||||
begin
|
||||
if paramCount <> 1 then
|
||||
halt(1);
|
||||
|
||||
(*
|
||||
* this initialize the library and check potential ABI mismatches
|
||||
* between the version it was compiled for and the actual shared
|
||||
* library used.
|
||||
*)
|
||||
LIBXML_TEST_VERSION;
|
||||
|
||||
(* parse the file and get the DOM *)
|
||||
doc := xmlReadFile(pchar(paramStr(1)), nil, 0);
|
||||
|
||||
if not assigned(doc) then
|
||||
begin
|
||||
printfn('error: could not parse file %s', [paramStr(1)]);
|
||||
halt(1);
|
||||
end;
|
||||
|
||||
(* Get the root element node *)
|
||||
root_element := xmlDocGetRootElement(doc);
|
||||
|
||||
print_element_names(root_element);
|
||||
|
||||
(* free the document *)
|
||||
xmlFreeDoc(doc);
|
||||
|
||||
(*
|
||||
* Free the global variables that may
|
||||
* have been allocated by the parser.
|
||||
*)
|
||||
xmlCleanupParser();
|
||||
end.
|
109
packages/libxml/examples/tree2.pas
Normal file
109
packages/libxml/examples/tree2.pas
Normal file
@ -0,0 +1,109 @@
|
||||
(*
|
||||
* section: Tree
|
||||
* synopsis: Creates a tree
|
||||
* purpose: Shows how to create document, nodes and dump it to stdout or file.
|
||||
* usage: tree2 <filename> -Default output: stdout
|
||||
* test: tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp
|
||||
* author: Lucas Brasilino <brasilino@recife.pe.gov.br>
|
||||
* copy: see Copyright for the status of this software
|
||||
*)
|
||||
|
||||
program tree2;
|
||||
|
||||
{$mode objfpc}
|
||||
|
||||
uses
|
||||
ctypes,
|
||||
libxml2,
|
||||
exutils,
|
||||
SysUtils;
|
||||
|
||||
var
|
||||
doc: xmlDocPtr;
|
||||
root_node, node, node1: xmlNodePtr;
|
||||
dtd: xmlDtdPtr;
|
||||
buff: array[0..255] of char;
|
||||
i, j: cint;
|
||||
|
||||
begin
|
||||
LIBXML_TEST_VERSION;
|
||||
|
||||
(*
|
||||
* Creates a new document, a node and set it as a root node
|
||||
*)
|
||||
doc := xmlNewDoc(BAD_CAST('1.0'));
|
||||
root_node := xmlNewNode(nil, BAD_CAST('root'));
|
||||
xmlDocSetRootElement(doc, root_node);
|
||||
|
||||
(*
|
||||
* Creates a DTD declaration. Isn't mandatory.
|
||||
*)
|
||||
dtd := xmlCreateIntSubset(doc, BAD_CAST('root'), nil, BAD_CAST('tree2.dtd'));
|
||||
|
||||
(*
|
||||
* xmlNewChild() creates a new node, which is "attached" as child node
|
||||
* of root_node node.
|
||||
*)
|
||||
xmlNewChild(root_node, nil, BAD_CAST('node1'), BAD_CAST('content of node 1'));
|
||||
(*
|
||||
* The same as above, but the new child node doesn't have a content
|
||||
*)
|
||||
xmlNewChild(root_node, nil, BAD_CAST('node2'), nil);
|
||||
|
||||
(*
|
||||
* xmlNewProp() creates attributes, which is "attached" to an node.
|
||||
* It returns xmlAttrPtr, which isn't used here.
|
||||
*)
|
||||
node := xmlNewChild(root_node, nil, BAD_CAST('node3'), BAD_CAST('this node has attributes'));
|
||||
xmlNewProp(node, BAD_CAST('attribute'), BAD_CAST('yes'));
|
||||
xmlNewProp(node, BAD_CAST('foo'), BAD_CAST('bar'));
|
||||
|
||||
(*
|
||||
* Here goes another way to create nodes. xmlNewNode() and xmlNewText
|
||||
* creates a node and a text node separately. They are "attached"
|
||||
* by xmlAddChild()
|
||||
*)
|
||||
node := xmlNewNode(nil, BAD_CAST('node4'));
|
||||
node1 := xmlNewText(BAD_CAST('other way to create content (which is also a node)'));
|
||||
xmlAddChild(node, node1);
|
||||
xmlAddChild(root_node, node);
|
||||
|
||||
(*
|
||||
* A simple loop that "automates" nodes creation
|
||||
*)
|
||||
for i := 5 to 6 do
|
||||
begin
|
||||
buff := 'node'+inttostr(i);
|
||||
node := xmlNewChild(root_node, nil, BAD_CAST(buff), nil);
|
||||
|
||||
for j := 1 to 3 do
|
||||
begin
|
||||
buff := 'node'+inttostr(i)+inttostr(j);
|
||||
node1 := xmlNewChild(node, nil, BAD_CAST(buff), nil);
|
||||
if j mod 2 = 0 then
|
||||
xmlNewProp(node1, BAD_CAST('odd'), BAD_CAST('no'))
|
||||
else
|
||||
xmlNewProp(node1, BAD_CAST('odd'), BAD_CAST('yes'));
|
||||
end;
|
||||
end;
|
||||
|
||||
(*
|
||||
* Dumping document to stdio or file
|
||||
*)
|
||||
docdump(doc);
|
||||
//xmlSaveFormatFileEnc(argc > 1 ? argv[1] : "-", doc, "UTF-8", 1);
|
||||
|
||||
(*free the document *)
|
||||
xmlFreeDoc(doc);
|
||||
|
||||
(*
|
||||
* Free the global variables that may
|
||||
* have been allocated by the parser.
|
||||
*)
|
||||
xmlCleanupParser();
|
||||
|
||||
(*
|
||||
* this is to debug memory for regression tests
|
||||
*)
|
||||
xmlMemoryDump();
|
||||
end.
|
Loading…
Reference in New Issue
Block a user