やりたいこととして、http://mizchi.github.io/md2react/ で、markdownのHTML直接入力の記法で、壊れたHTMLを入力した際に検出して警告を出そうとしていました。

最初は次のリンクを参考に、下のようなコードを書きました
Check for XML errors using JavaScript - Stack Overflow

parser = new DOMParser()
checkValidXML = (xmlString) ->
  parsererrorNS = parser.parseFromString('INVALID', 'text/xml').getElementsByTagName("parsererror")[0].namespaceURI
  dom = parser.parseFromString(xmlString, 'text/xml')

  if dom.getElementsByTagNameNS(parsererrorNS, 'parsererror').length > 0
    throw new Error('Error parsing XML')
  return dom;

ただ、この場合は <a>foo</a><span>aaa</span> を誤検出してしまいます。本当に検知したいのは<a>foo</ のような中途半端な文字列です。

divやpreは通ります。(現状のmd2reactの実装では、少しでも安全側に寄せて誤検出を許容しています)

この実装もDOMParserに依存しているので、nodeでも動くようにできればピュアなJSの実装で、正しく壊れたHTML(XML)を検出したいのですが、より良い方法や、既存実装があったりしませんでしょうか。