@maxemga

Как спарсить HTML таблицу в массив объектов?

Мне с сервера прилетает строка html кода таблицы, мне нужно ее распарсить в массив объектов. Как это сделать?
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Можно создать элемент template, вставить в него HTML строку, и забрать из него DocumentFragment.

Там уже найти строки-ячейки как в обычном документе:
const htmlString = `<table>
  <tr><td>Apple</td><td>12</td></tr>
  <tr><td>Banana</td><td>34</td></tr>
</table>`;

const tmpl = document.createElement('template');
tmpl.innerHTML = htmlString;
const df = tmpl.content;

const rows = df.querySelectorAll('tr');
const result = [];
rows.forEach(row => {
  result.push([...row.children].map(td => td.textContent));
});

result // [["Apple","12"],["Banana","34"]]
Ответ написан
Комментировать
zkrvndm
@zkrvndm
Архитектор решений
Использовать DOMParser для построения дерева, querySelectorAll для поиска элементов в этом дереве и цикл for для обхода найденных элементов и записи данных в ваш объект.

https://developer.mozilla.org/ru/docs/Web/API/DOMParser - ваш основной инструмент. Он умеет парсить html.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы