JavaScript parseFromString() — розбір HTML або XML з рядка
Метод parseFromString() перетворює рядок на документ DOM. Другим аргументом іде тип: text/html, text/xml, image/svg+xml.
Загальний опис
Головна перевага над тимчасовим <div> з innerHTML — нічого не вантажиться й не виконується. Зображення не підуть у мережу, обробники з атрибутів не спрацюють. Документ мертвий, і саме тому з нього безпечно діставати дані.
Повертається повноцінний Document — по ньому працюють querySelector(), querySelectorAll(), усе звичне.
Помилки розбору XML метод не кидає. Замість цього він повертає документ, усередині якого лежить елемент parsererror — перевіряти доводиться вручну.
- Нотатка
-
Розібрати — безпечно, вставити — ні. Якщо результат потім іде в сторінку, санітизація все одно потрібна.
автор: NagarD
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 1 | 1 | 1.3 | 8 | 12 | 9 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
Приклади
+ запропонувати свій приклад у пісочниці
Дістати дані з чужої розмітки й розібрати 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);
}
Коментарі
Коментарів ще немає — будьте першим!