mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-30 05:11:29 +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
	 sg
						sg