xml2lua icon indicating copy to clipboard operation
xml2lua copied to clipboard

Creating a DOM tree is missing XML declaration

Open geert56 opened this issue 3 years ago • 0 comments
trafficstars

Any XML declaration gets lost when parsing XML. Also, a ROOT type node is never created when using the DOM handler. As I understand it, the first tree node should be of type ROOT and when present should have the XML declaration as a child node under the DECL type. The first start element would then be the second child. This is easy to fix in xmlhandler/dom.lua in the function dom:decl() by adding: if self.root == nil then self.root = self.current end before or after the table.insert.

On reflection, I think it is even better to always have a ROOT node in the DOM handler, so that top-level comments are also preserved as its children. This can be achieved by setting root=curent in the init() function.

geert56 avatar Jun 03 '22 04:06 geert56