2
// This unit is part of the GLScene Engine https://github.com/glscene
6
23/08/10 - Yar - Creation
23
GLSXMLDocument = TXMLDocument;
24
GLSXMLNode = TDOMNode;
25
GLSDOMNode = TDOMNode;
27
function GLSNewXMLDocument: GLSXMLDocument;
28
procedure ReleaseXMLDocument(var ADoc: GLSXMLDocument);
29
procedure WriteXMLFile(var ADoc: GLSXMLDocument; AStream: TStream); overload;
30
procedure ReadXMLFile(var ADoc: GLSXMLDocument; AStream: TStream); overload;
31
procedure WriteXMLFile(var ADoc: GLSXMLDocument; AFileName: string); overload;
32
procedure ReadXMLFile(var ADoc: GLSXMLDocument; AFileName: string); overload;
33
function GetXMLAttribute(const XMLNode: GLSXMLNode; const AttrName: string; out Value: string): Boolean; overload;
34
function GetXMLAttribute(const XMLNode: GLSXMLNode; Idx: Integer): GLSXMLNode; overload;
35
procedure SetXMLAttribute(const XMLNode: GLSXMLNode; const AttrName: string; const Value: string); overload;
37
function GetXMLAttributeCount(const XMLNode: GLSXMLNode): Integer;
38
function FindXMLNode(const ParentNode: GLSXMLNode; const NodeName: string; out ChildNode: GLSXMLNode): Boolean;
39
function CreateDOMNode(const ParentNode: GLSDOMNode; const NodeName: string): GLSDOMNode;
40
procedure SetXMLText(const DOMNode: GLSDOMNode; const AText: string);
41
function GetXMLText(const XMLNode: GLSXMLNode; out AText: string): Boolean;
45
function GLSNewXMLDocument: GLSXMLDocument;
47
Result := TXMLDocument.Create;
50
procedure ReleaseXMLDocument(var ADoc: GLSXMLDocument);
55
procedure WriteXMLFile(var ADoc: GLSXMLDocument; AStream: TStream);
57
XMLWrite.WriteXMLFile(ADoc, AStream);
60
procedure ReadXMLFile(var ADoc: GLSXMLDocument; AStream: TStream);
62
XMLRead.ReadXMLFile(ADoc, AStream);
65
procedure WriteXMLFile(var ADoc: GLSXMLDocument; AFileName: string);
67
XMLWrite.WriteXMLFile(ADoc, AFileName);
70
procedure ReadXMLFile(var ADoc: GLSXMLDocument; AFileName: string);
72
XMLRead.ReadXMLFile(ADoc, AFileName);
75
function GetXMLAttribute(const XMLNode: GLSXMLNode; const AttrName: string; out Value: string): Boolean;
79
E := XMLNode as TDOMElement;
81
Result := Length(Value) > 0;
84
procedure SetXMLAttribute(const XMLNode: GLSXMLNode; const AttrName: string; const Value: string);
88
E := XMLNode as TDOMElement;
92
function FindXMLNode(const ParentNode: GLSXMLNode; const NodeName: string; out ChildNode: GLSXMLNode): Boolean;
96
E := ParentNode as TDomElement;
97
ChildNode := E.FindNode(NodeName);
98
Result := Assigned(ChildNode);
101
function CreateDOMNode(const ParentNode: GLSDOMNode; const NodeName: string): GLSDOMNode;
103
Result := ParentNode.OwnerDocument.CreateElement(NodeName);
104
ParentNode.AppendChild(Result);
107
procedure SetXMLText(const DOMNode: GLSDOMNode; const AText: string);
109
DOMNode.AppendChild(DOMNode.ownerDocument.createTextNode(AText));
112
function GetXMLText(const XMLNode: GLSXMLNode; out AText: string): Boolean;
116
E := XMLNode as TDOMElement;
117
AText := E.TextContent;
118
Result := Length(AText)>0;
121
function GetXMLAttributeCount(const XMLNode: GLSXMLNode): Integer;
125
E := XMLNode as TDOMElement;
126
Result := E.Attributes.Length;
129
function GetXMLAttribute(const XMLNode: GLSXMLNode; Idx: Integer): GLSXMLNode;
133
E := XMLNode as TDOMElement;
134
Result := E.Attributes[Idx];