Я не уверен, что понимаю вашу проблему. С какой проблемой вы сталкиваетесь при использовании innerHTML
?
const container = document.querySelector('#container');
container.innerHTML = '...';
Разве это не работает, как ожидалось?
Кроме того, если у вас есть какие-либо изменения, чтобы сделать с этим элементом svg
или для прослушивания некоторых событий, я бы порекомендовал использовать кратные createElement
, чтобы создать дерево тегов, а затем добавить его вместо простой строки.