When setting innerHtml for a node the closing slash of an img tag dissappears. Noticed in C#, here is code to reproduce:
Debug.WriteLine(HtmlNode.CreateNode("<img id=\"a\" />").OuterHtml);
Expected output: "<img id="a" />" or <img id="a"></img>"
Actual output: "<img id="a">"
Using a HtmlDocument with OptionOutputAsXml:
HtmlDocument doc = new HtmlDocument();
doc.OptionOutputAsXml = true;
HtmlNode node = doc.CreateElement("x");
node.InnerHtml = "<img id=\"bla\" />";
doc.DocumentNode.AppendChild(node);
Debug.WriteLine(doc.DocumentNode.OuterHtml);
Expected output: "<x><img id="bla" /></x>" or "<x><img id="bla"></img></x>".
Actual output: "<x><img id="bla"></x>".
If I replace "img" with "MyImageTag" output is as expected: "<myimagetag id="bla"></myimagetag>".