Одна потенциальная проблема заключается в том, что присвоение innerHTML
вновь созданного элемента может выполнять встроенные обработчики внутри txt
:
const txt = `
<address>
<street>Roble Ave</street>
...
</address>
<img src="nosrc" onerror="alert('evil');">
`;
const d = document.createElement('div')
d.innerHTML = txt
// navigate through d
Если txt
может содержать произвольные данные, это угроза безопасности.DOMParser
намного безопаснее, потому что у него нет этой уязвимости.
Также обратите внимание, что вы можете значительно упростить
d.getElementsByTagName("streetNumber")[0].childNodes[0].nodeValue
до
d.querySelector('streetNumber').textContent
Такжеобратите внимание, что jQuery не участвует ни в чем из этого - это только Javascript.