mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-29 11:41:37 +01:00
* Improved whitespace handling (although it's still not perfect in all
cases)
This commit is contained in:
parent
a384390a05
commit
fc1b32c275
@ -466,6 +466,7 @@ var
|
|||||||
Element: TDOMElement;
|
Element: TDOMElement;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
|
// WriteLn('Start: ', LocalName, '. Node buffer before: ', FNodeBuffer.Count, ' elements');
|
||||||
Element := FDocument.CreateElement(LocalName);
|
Element := FDocument.CreateElement(LocalName);
|
||||||
if Assigned(Attr) then
|
if Assigned(Attr) then
|
||||||
begin
|
begin
|
||||||
@ -481,8 +482,9 @@ begin
|
|||||||
NodeInfo.NodeType := ntTag;
|
NodeInfo.NodeType := ntTag;
|
||||||
NodeInfo.DOMNode := Element;
|
NodeInfo.DOMNode := Element;
|
||||||
if not Assigned(FDocument.DocumentElement) then
|
if not Assigned(FDocument.DocumentElement) then
|
||||||
FDocument.AppendChild(NodeInfo.DOMNode);
|
FDocument.AppendChild(Element);
|
||||||
FNodeBuffer.Add(NodeInfo);
|
FNodeBuffer.Add(NodeInfo);
|
||||||
|
// WriteLn('Start: ', LocalName, '. Node buffer after: ', FNodeBuffer.Count, ' elements');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure THTMLToDOMConverter.ReaderEndElement(Sender: TObject;
|
procedure THTMLToDOMConverter.ReaderEndElement(Sender: TObject;
|
||||||
@ -491,9 +493,8 @@ var
|
|||||||
NodeInfo, NodeInfo2: THTMLNodeInfo;
|
NodeInfo, NodeInfo2: THTMLNodeInfo;
|
||||||
i, j: Integer;
|
i, j: Integer;
|
||||||
TagInfo: PHTMLElementProps;
|
TagInfo: PHTMLElementProps;
|
||||||
IsFirst: Boolean;
|
|
||||||
begin
|
begin
|
||||||
// WriteLn('End: ', LocalName);
|
// WriteLn('End: ', LocalName, '. Node buffer: ', FNodeBuffer.Count, ' elements');
|
||||||
// Find the matching start tag
|
// Find the matching start tag
|
||||||
i := FNodeBuffer.Count - 1;
|
i := FNodeBuffer.Count - 1;
|
||||||
while i >= 0 do
|
while i >= 0 do
|
||||||
@ -513,7 +514,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
Inc(i);
|
Inc(i);
|
||||||
IsFirst := True;
|
|
||||||
while i < FNodeBuffer.Count do
|
while i < FNodeBuffer.Count do
|
||||||
begin
|
begin
|
||||||
NodeInfo2 := THTMLNodeInfo(FNodeBuffer.Items[i]);
|
NodeInfo2 := THTMLNodeInfo(FNodeBuffer.Items[i]);
|
||||||
@ -529,11 +529,12 @@ begin
|
|||||||
// Character data allowed, so normalize it
|
// Character data allowed, so normalize it
|
||||||
NodeInfo2.DOMNode.NodeValue := ' ';
|
NodeInfo2.DOMNode.NodeValue := ' ';
|
||||||
NodeInfo.DOMNode.AppendChild(NodeInfo2.DOMNode)
|
NodeInfo.DOMNode.AppendChild(NodeInfo2.DOMNode)
|
||||||
end;
|
end
|
||||||
|
else
|
||||||
|
NodeInfo.DOMNode.AppendChild(NodeInfo2.DOMNode);
|
||||||
|
|
||||||
NodeInfo2.Free;
|
NodeInfo2.Free;
|
||||||
FNodeBuffer.Delete(i);
|
FNodeBuffer.Delete(i);
|
||||||
IsFirst := False;
|
|
||||||
end;
|
end;
|
||||||
break;
|
break;
|
||||||
end;
|
end;
|
||||||
@ -547,7 +548,11 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.3 2002-12-12 20:17:32 sg
|
Revision 1.4 2002-12-14 19:18:21 sg
|
||||||
|
* Improved whitespace handling (although it's still not perfect in all
|
||||||
|
cases)
|
||||||
|
|
||||||
|
Revision 1.3 2002/12/12 20:17:32 sg
|
||||||
* More WideString fixes
|
* More WideString fixes
|
||||||
|
|
||||||
Revision 1.2 2002/12/12 13:43:38 michael
|
Revision 1.2 2002/12/12 13:43:38 michael
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user