JavaScript parseFromString() — розбір HTML або XML з рядка


Метод parseFromString() перетворює рядок на документ DOM. Другим аргументом іде тип: text/html, text/xml, image/svg+xml.

автор: NagarD

Загальний опис

Головна перевага над тимчасовим <div> з innerHTMLнічого не вантажиться й не виконується. Зображення не підуть у мережу, обробники з атрибутів не спрацюють. Документ мертвий, і саме тому з нього безпечно діставати дані.

Повертається повноцінний Document — по ньому працюють querySelector(), querySelectorAll(), усе звичне.

Помилки розбору XML метод не кидає. Замість цього він повертає документ, усередині якого лежить елемент parsererror — перевіряти доводиться вручну.

автор: NagarD

Нотатка

Розібрати — безпечно, вставити — ні. Якщо результат потім іде в сторінку, санітизація все одно потрібна.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
parseFromString 1+ 1+ 1+ 8+ 12+ 9+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
parseFromString yes yes yes yes

Приклади

+ запропонувати свій приклад у пісочниці

Дістати дані з чужої розмітки й розібрати RSS.

const doc = new DOMParser().parseFromString('<h1>Заголовок</h1>', 'text/html');
console.log(doc.querySelector('h1').textContent);

// XML: помилка не кидається — її треба шукати в документі
const rss = '<rss><item><title>Новина</title></item></rss>';
const xml = new DOMParser().parseFromString(rss, 'text/xml');

if (xml.querySelector('parsererror')) {
    console.error('Некоректний XML');
} else {
    console.log(xml.querySelector('title').textContent);
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід