Sign in Join
Wiki copytemporary

DomExt: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11### \[This entry is obsolete but kept for documentation. Simply use fcl-xml from the standard packages.\]
22
33### About
44
55DomExt unit extends FPC implementation of XML DOM API with set of functions to simplify XML node manipulation. Its functionality is inspired by [SimpleXML Library by Michael Vlasov](http://www.torry.ru/authorsmore.php?id=4012)
66
77Its main characteristics are:
88
99- Type conversion when working with node and attribute values. E.g. DomReadIntAttr returns attribute value as Integer. This is similar to TIniFile API. Supported data types include String, Integer, Boolean, Double and TDateTime. Non-string data types are coverted to string representation using [XSD primitive data types syntax](http://www.w3.org/TR/xmlschema-2/#built-in-primitive-datatypes).
1010- Handling default node and attribute values when reading, similar to TIniFile API.
1111- Encoding conversion when working with node and attribute names and values. You may need this feature in LCL projects because FCL dom.pp uses UTF-16 (widestring) and LCL uses UTF-8.
1212- Flexible child node handling that helps to avoid excessive Assigned(...) checks. DomNeedChild function is guaranteed to return a non-nil node or raise an exception if requested node was not found. DomEnsureChild creates requested node if it does not exist. If you need to check node existence you can use DomGetChild that returns nil if requested child node was not found. All those functions allow to request not only direct descendant nodes but also deeply nested nodes using XPath-like syntax, e.g. 'childLevel1/childLevel2'.
1313- Ability to save/load StringLists to/from XML node lists.
1414- Ability to read/write node content as XML fragment, similar to innerHTML property in JavaScript.
1515
1616### Author
1717
1818Vladimir Zhirov
1919
2020### License
2121
2222[modified](http://svn.freepascal.org/svn/lazarus/trunk/COPYING.modifiedLGPL) [LGPL](http://svn.freepascal.org/svn/lazarus/trunk/COPYING.LGPL) (same as the FPC RTL and the Lazarus LCL).
2323
2424### Download
2525
2626The latest stable release can be found on *link to the lazarus-ccr sf download location*.
2727
2828### Change Log
2929
3030Version 0.1 *2010-08-25*
3131
32-` * initial release`
32+```text
33+ * initial release
34+```
3335
3436### Dependencies
3537
3638The unit is a single Pascal source file that only depends on FPC RTL and FCL.
3739
3840### Status
3941
4042Beta
4143
4244Issues:
4345
4446- Since the unit was primarily written for use in LCL applications, widestring mode ("transparent", without string conversions) is completely untested. To use it one can comment out {\$define UTF8Strings} compiler directive.
4547- Conversion between TDateTime and String does not fully obey XSD specs, both because TDateTime limitations and implementation details. Thus, years beyond 1..9999 range, fractional seconds and time zones are not supported.
4648
4749### Installation and usage
4850
4951Include unit DomExt in the *uses* section. Set path for it in project settings if needed.
5052
5153### Contact
5254
5355Please send bug reports and patches to the e-mail you find in the unit source code.
5456
5557---
5658*From the Free Pascal wiki, page "DomExt", as it stood on 2017-12-15 after a change by Thaddy, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
5759Category: Components

Back to history