This package provides a simple minded XML parser to be used with Gate.
Types |
---|
type Free_Specific_Data is access procedure (Data : in out XML_Specific_Data); | |
| |
type Node is record Tag : String_Ptr; -- The name of this node Attributes : String_Ptr; -- The attributes of this node Value : String_Ptr; -- The value, or null is not relevant Parent : Node_Ptr; -- The parent of this Node. Child : Node_Ptr; -- The first Child of this Node. The next child is Child.Next Next : Node_Ptr; -- Next "brother" node. Specific_Data : XML_Specific_Data; -- Use to store data specific to each implementation (e.g a boolean -- indicating whether this node has been accessed) end record; | |
A node of the XML tree.
Each time a tag is found in the XML file, a new node is created, that
points to its parent, its children and its siblings (nodes at the same
level in the tree and with the same parent).
| |
type Node_Ptr is access all Node; | |
Pointer to a node of the XML tree.
| |
type XML_Specific_Data is private; | |
The type of the extra data that can be attached to each node of the
XML tree. See for instance the package Glib.Glade.
|
Subprograms |
---|
function Parse (File : String) return Node_Ptr; | ||
Parse File and return the first node representing the XML file.
| ||
procedure Print (N : Node_Ptr; Indent : Natural := 0; File_Name : String := ""); | ||
Write the tree starting with N into a file File_Name. The generated | ||
function Find_Tag (N : Node_Ptr; Tag : String) return Node_Ptr; | ||
Find a tag Tag in N and its brothers.
| ||
function Get_Field (N : Node_Ptr; Field : String) return String_Ptr; | ||
Return the value of the field 'Field' if present in the children of N. | ||
procedure Add_Child (N : Node_Ptr; Child : Node_Ptr); | ||
Add a new child to a node.
| ||
function Deep_Copy (N : Node_Ptr) return Node_Ptr; | ||
Return a deep copy of the tree starting with N. N can then be freed | ||
procedure Free (N : in out Node_Ptr; Free_Data : Free_Specific_Data := null); | ||
Free the memory allocated for a node and its children. | ||
function Get_Attribute (N : in Node_Ptr; Attribute_Name : in String) return String_Ptr; | ||
Return the value of the attribute 'Attribute_Name' if present. |