| · | Removed the $NO_HASH define. Several internal flags depend on hash values being generated and tested.
|
| · | Added {$DO_ROWS_AND_COLUMNS} and {$HASH_ATTRIBUTE_OBJECT} defines.
|
| · | Add the ability to create a descendent component framework from within the TagExplorer demo application.
|
| · | Fixed a problem with the Stop method not working correctly.
|
| · | Make extensive changes to the TErrorType property.
|
| · | Removed the following attribute properties
|
|
|
| 1. | NameStart
|
| 2. | NameLength
|
| 3. | ValueStart
|
| 4. | ValueLength
|
|
|
| The Start and Length property for each attribute is still available.
|
|
|
| · | Removed the following properties from TCustomTagParser
|
|
|
| 1. | PreviousTagElement
|
| 2. | PreviousTextElement
|
| 3. | PreviousDataElement
|
| 4. | PreviousAttributeElement
|
|
|
| These properties created more overhead during the parsing process than they were worth. You can still simulate this quite easily in the various events by creating a global object of the required type and assigning it the value of the element in the various events.
|
|
|
| · | Added InLink property to ATagParser - allowing you to extract the text for any HREF quickly and easily.
|
| · | Added TagHasAttribute and TagHasAttributeAndValue functions for use with the Attributes stringlist of the Tag element in the OnTag event.
|
| · | cfParseQuoteToQuote was removed from ComplexFilters - internal changes made the property obsolete.
|
| · | Rewrote the internal ParseAttributes method to make it more durable when running into malformed (X)HTML and attributes. Problems with illegal characters before and after attribute name=value pairs have been eliminated.
|
| · | Rewrote the internal ParseEndTag method to account erroneous characters before and after the actual name. The tag is returned as is, but it can always identified with its hash value.
|
| · | Removed UTF16BE support - unnecessary.
|
| · | Fixed problem with scripts that contained nested comments.
|
| · | Moved all tag and attribute name constants into a unit thereby doing away with the need to include them. Just add the HTML_Constants unit to the uses clause.
|
| · | Source code is compilable under Delphi8 and Delphi 2005 without any changes
|
| · | Source code is compilable under C++ Builder 6 - changed some internal method names to help avoid conflicts.
|
| · | Fixed an error concerning unquoted attribute values that ended with a forward slash (/). If it was the last attribute value in the tag, it was mistaken as an indication that the tag was an XHTML tag.
|
| · | In the internal ParseEntity method, when it was determined that the method was NOT dealing with an entity, it was shorting the result exactly 1 character. Most noticable in long URLs in attribute values when cfTranslateEntities was set to true. Fixed.
|
| · | Hex and decimal entities are now handled properly - ATagParser can now translate character, numeric and hex entities.
|
| · | The OnEntity event, including all references to it, has been removed. This means that etEntity in the Elements property, cfDetectEntities in the ComplexFilters property and tfDetectEntities in the TextFilters property have all been removed as well. It simply caused more problems than it solved.
|
| · | Fixed an elusive memory error that occurred when the attribute value exceeded its buffer size of 64k. The buffer size has been increased and logic was added to deal with potential overflows. This error usually occured when working with ASP.NET files where forms had a __VIEWSTATE value that was very, very large.
|
| · | UTF-8 and UTF-16LE and UTF-16BE are handled automatically via the ParsePointer, ParseStream and ParseFile methods.
|
| · | Delphi Widestrings are handled via the new ParseWideString method.
|
| · | Comment parsing was simplified and no longer uses a stack to determine unterminated comments. It also helped improve the detection of styles and scripts embedded in comments.
|
| · | The EndTagTable array in HTML_Ex unit was removed. End tags now share the same hash value as their corresponding start tags. To tell them apart, simply use the ElementType property.
|
| · | A PHP specific element type was added that returns PHP code blocks via the OnData event.
|
| · | Tag and attribute ID constants were created to help make Delphi CASE statements identifying attributes and tag names more verbose and easier to read.
|
| · | Removed StartTagAlpha array from HTML_Ex unit.
|
| · | Changed acronymn to acronym in HTML_Ex unit and adjusted the StartTagTable array to reflect the new hash value.
|
|
|
| Instead of loading and then parsing, this version handles both in a single operation.
|
| The Parse method is now protected and parsing is handled by the following methods.
|
|
|
| · | ParseContent
|
| · | ParseStream
|
| · | ParseFile
|
| · | ParsePointer
|
| · | ParseString
|
| · | ParseWideString
|
|
|
| The following methods were moved from TATagParser to TCustomTagParser to help facilitate descendants.
|
|
|
| · | PushElements
|
| · | PopElements
|
| · | PushErrors
|
| · | PopErrors
|
| · | PushComplexFilters
|
| · | PopComplexFilters
|
| · | PushTextFilters
|
| · | PopTextFilters
|
|
|
| Added the following related methods.
|
|
|
| · | PushAllSettings
|
| · | PopAllSettings
|
|
|
| · | Changed FlattenAttributes so that trailing whitespace is removed from the returned string.
|
| · | Changed acronymn in HTML_Ex.pas to acronym and updated its hash value and position in the StartTagTable array.
|
| · | Added tfDetectEntities and tfAllowWhiteSpace to the TextFilters property.
|
| · | Added DeadSpace and DeadSpaceCount properties.
|
| · | Added DocIndex property to TBaseElement.
|
| · | Added cfParseQuoteToQuote option to ComplexFilters property.
|
| · | Added HasEvent property to the TTagElement object.
|
| · | This allows you to check to see if a particular set of attributes contains an event.
|
| · | Added IsEvent property to the TAttributeElement object. This allows you to check and see if the current attribute is an event.
|
| · | Added DeadSpace property to TCustomTagParser. This property contains the amount (in bytes) of dead space (meaningless space between tags) in a document.
|
| · | Added IsQuoted property to the TAttributeElement object. Since checking the title of web pages is such a common activity, an OnTitle event was added to make it simple.
|
| · | Added tfPreviousText option to TextFilters property.
|
| · | Added PreviousText property to TTagElement object.
|
| · | Fixed a particularly nasty access violation that occurred when ATagParser parsed a file that contained only text.
|
| · | Corrected length error that occurred when returning malformed comments (it was 1 short)
|
| · | Corrected erComment error that didn't return the length of the malformed comment
|
| · | Corrected the dupClose error that occurred at the end of ASP code blocks
|
| · | Fixed the infamous embedded tags in script problem - where an end tag (</) is embedded in a script and not escaped properly. Technically, this is an error because the HTML specification say that a script is terminated at the first occurrence of </. But, because most browsers allow it, so do we.
|
| · | Added version for Delphi 7
|
| · | Corrected a small problem that kept ATagParser from recognizing custom Delphi tags.
|
| · | Corrected the dupClose error that occurred at the end of CDATA sections
|
| · | Corrected problem where complex custom tags (#x a=b) were reported as complex tags
|
|
|
|
|