using HyperCollate
xml = """
<p>De te streng doorgedreven rationalisatie van zijn prinsenjeugd had dit
<del>met <del>hem</del><add>zich</add></del>
meegebracht.</p>
"""
processed_xml = add_subst(xml)
"<p>De te streng doorgedreven rationalisatie van zijn prinsenjeugd had dit \n<del>met <subst><del>hem</del><add>zich</add></subst></del>\nmeegebracht.</p>"
show_svg(to_graph(processed_xml))
xml = """
<xml><s>...weinig van pas komen
<del type="crossedOut" rend="grey pencil" hand="#RB" resp="#EB">zoo, o.m. in de sexueele opvoeding van den
troo<del type="crossedOut" rend="grey pencil" hand="#RB" resp="#EB">p</del>
<add place="supralinear" hand="#RB" rend="grey pencil" resp="#EB">n</add>o
<add place="supralinear" rend="grey pencil" hand="#RB" resp="#EB">p</add>volger...</del></s></xml>
"""
processed_xml = add_subst(xml)
"<xml><s>...weinig van pas komen\n<del hand=\"#RB\" rend=\"grey pencil\" resp=\"#EB\" type=\"crossedOut\">zoo, o.m. in de sexueele opvoeding van den\ntroo<subst><del hand=\"#RB\" rend=\"grey pencil\" resp=\"#EB\" type=\"crossedOut\">p</del><add place=\"supralinear\" hand=\"#RB\" rend=\"grey pencil\" resp=\"#EB\">n</add></subst>o\n<add place=\"supralinear\" hand=\"#RB\" rend=\"grey pencil\" resp=\"#EB\">p</add>volger...</del></s></xml>"
show_svg(to_graph(processed_xml))
xml = """
<xml>Hoe zoet moet nochtans zijn dit <del>werven om</del><add>trachten naar</add> een vrouw,
de ongewisheid vóór de liefelijke toestemming!</xml>
"""
processed_xml = add_subst(xml)
"<xml>Hoe zoet moet nochtans zijn dit <subst><del>werven om</del><add>trachten naar</add></subst> een vrouw,\nde ongewisheid vóór de liefelijke toestemming!</xml>"
show_svg(to_graph(processed_xml))
xml = "<x>something <del>not this</del><del>or this</del><add>but this</add> something else</x>"
processed_xml = add_subst(xml)
"<x>something <subst><del>not this</del><del>or this</del><add>but this</add></subst> something else</x>"
show_svg(to_graph(processed_xml))