можно создать временный элемент <template>, вставить в него этот HTML,
и забрать из него
DocumentFragment
Фрагмент — это примерно как DOM-документ, его можно рекурсивно обойти через свойство
children
Например, в строке содержится такой HTML:
<div>
<p>Text</p>
<ul>
<li>Apple</li>
<li>Banana</li>
</ul>
</div>
И примерно такой код:
const tmpl = document.createElement('template');
tmpl.innerHTML = msg; // строка с HTML
const df = tmpl.content; // DocumentFragment
df.children // массив из одного элемента: наружний div
df.children[0].children // массив с двумя эл.: параграфом и списком
df.children[0].children[1].children[1].textContent // "Banana"