Introduction
The first paragraph
Another long paragraph
Après avoir coupé, j'obtiens :
Introduction
The first paragraph
[]
[div]
[div, div]
[div, div, p]
Introduction
[div, div]
[div]
[div, p]
The first paragraph
[div]
[div]
[div, p]
Another long paragraph
[div]
[]
The algorihm, is then really simple:
let res be the XML as a string ;
read res and each time you encouter a tag:
if it is an opening one:
push it to the stack
else if it is a closing one:
pop the stack.
remove any malformed/cutted tag in the end of res
for each tag in the stack, pop it, and write:
res = res + closed tag
return res
And `res` contain the repaired XML.
Finally, this is the code in ruby I use. The `xml` variable contain the cutted XML.
# repair cutted XML code by closing the tags
# work even if the XML is cut into a tag.
# example:
# transform '