* Fixed WriteXML() for non-document nodes after r20538, Mantis #21609

git-svn-id: trunk@20678 -
This commit is contained in:
sergei 2012-03-30 18:06:03 +00:00
parent 71e20b1b59
commit c060466fb8

View File

@ -809,26 +809,46 @@ end;
// -------------------------------------------------------------------
procedure WriteXMLFile(doc: TXMLDocument; const AFileName: String);
begin
WriteXML(doc, AFileName);
end;
procedure WriteXMLFile(doc: TXMLDocument; var AFile: Text);
begin
WriteXML(doc, AFile);
end;
procedure WriteXMLFile(doc: TXMLDocument; AStream: TStream);
begin
WriteXML(doc, AStream);
end;
procedure WriteXML(Element: TDOMNode; const AFileName: String);
var
fs: TFileStream;
begin
fs := TFileStream.Create(AFileName, fmCreate);
try
WriteXMLFile(doc, fs);
WriteXML(Element, fs);
finally
fs.Free;
end;
end;
procedure WriteXMLFile(doc: TXMLDocument; var AFile: Text);
procedure WriteXML(Element: TDOMNode; var AFile: Text);
var
s: TStream;
doc: TDOMDocument;
begin
if Element.NodeType = DOCUMENT_NODE then
doc := TDOMDocument(Element)
else
doc := Element.OwnerDocument;
s := TTextStream.Create(AFile);
try
with TXMLWriter.Create(s, doc.Names) do
try
WriteNode(doc);
WriteNode(Element);
finally
Free;
end;
@ -837,31 +857,22 @@ begin
end;
end;
procedure WriteXMLFile(doc: TXMLDocument; AStream: TStream);
procedure WriteXML(Element: TDOMNode; AStream: TStream);
var
doc: TDOMDocument;
begin
if Element.NodeType = DOCUMENT_NODE then
doc := TDOMDocument(Element)
else
doc := Element.OwnerDocument;
with TXMLWriter.Create(AStream, doc.Names) do
try
WriteNode(doc);
WriteNode(Element);
finally
Free;
end;
end;
procedure WriteXML(Element: TDOMNode; const AFileName: String);
begin
WriteXMLFile(TXMLDocument(Element), AFileName);
end;
procedure WriteXML(Element: TDOMNode; var AFile: Text);
begin
WriteXMLFile(TXMLDocument(Element), AFile);
end;
procedure WriteXML(Element: TDOMNode; AStream: TStream);
begin
WriteXMLFile(TXMLDocument(Element), AStream);
end;
end.