oga/lib/oga
Yorick Peterse dd138981f6
Generate XML without relying on recursion
While using recursion is an easy way of generating XML it can lead to
the call stack overflowing when serialising documents with lots of
nested nodes.

Generally there are two ways of working around this:

1. Use an explicit stack (e.g. an array or a queue of sorts) instead of
   relying on the call stack.
2. Use an algorithm that doesn't use a stack at all (e.g. Morris
   traversal).

This commit introduces the XML::Generator class which can serialize
documents back to XML without using a stack at all. This class takes
advantage of XML nodes having access to not only their child nodes, but
also their siblings and their parents.

All XML serialisation logic now resides in the XML::Generator class. In
turn the various "to_xml" methods just use this class and serialize
everything starting at "self".
2016-09-04 19:19:00 +02:00
..
css Revamp CSS parser for better axis support 2015-09-04 16:06:20 +02:00
html Removed start/end comments of YARD blocks 2015-09-01 19:59:52 +02:00
ruby Removed start/end comments of YARD blocks 2015-09-01 19:59:52 +02:00
xml Generate XML without relying on recursion 2016-09-04 19:19:00 +02:00
xpath XPath support for nested pipe operators 2016-02-23 22:24:07 +01:00
blacklist.rb Removed start/end comments of YARD blocks 2015-09-01 19:59:52 +02:00
entity_decoder.rb Removed start/end comments of YARD blocks 2015-09-01 19:59:52 +02:00
lru.rb Removed start/end comments of YARD blocks 2015-09-01 19:59:52 +02:00
oga.rb Removed start/end comments of YARD blocks 2015-09-01 19:59:52 +02:00
version.rb Release 2.3 2016-07-13 22:44:42 +02:00
whitelist.rb Removed start/end comments of YARD blocks 2015-09-01 19:59:52 +02:00