DOMParser: parseFromString() ã¡ã½ãã
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
parseFromString() 㯠DOMParser ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ã HTML ã¾ã㯠XML ã®å
¥ã£ãæååãæ§æè§£æãã HTMLDocument ã¾ã㯠XMLDocument ãè¿ãã¾ãã
ã¡ã¢:
éçã¡ã½ããã® Document.parseHTMLUnsafe() ã¯ã HTML ã®æååã Document å
ã®è¦ç´ ã«æ§æè§£æã§ããã人éå·¥å¦çãªä»£æ¿ææ®µãæä¾ãã¾ãã
æ§æ
parseFromString(string, mimeType)
弿°
string-
æ§æè§£æããæååã§ãã HTMLãxmlãXHTMLãsvg ã®ããããã®ææ¸ãå ¥ã£ã¦ããå¿ è¦ãããã¾ãã
mimeType-
æååã ãã®æååã¯ãæååãæ§æè§£æããéã« XML ãã¼ãµã¼ã¨ HTML ãã¼ãµã¼ã®ã©ã¡ãã使ç¨ããããæ±ºå®ãã¾ãã æå¹ãªå¤ã¯æ¬¡ã®ã¨ããã§ãã
text/htmltext/xmlapplication/xmlapplication/xhtml+xmlimage/svg+xml
text/htmlã®å¤ãæå®ããã¨ã HTML ãã¼ãµã¼ãå¼ã³åºããã¡ã½ããã¯HTMLDocumentãè¿ãã¾ãããã¹ã¦ã®<script>è¦ç´ ã¯å®è¡ä¸å¯ã¨ãã¼ã¯ããã<noscript>ã®ã³ã³ãã³ãããã¼ã¯ã¢ããã¨ãã¦è§£éããã¾ããä»ã®æå¹ãªå¤ (
text/xml,application/xml,application/xhtml+xml,image/svg+xml) ã¯æ©è½çã«åçã§ãããããã¯ãã¹ã¦ XML ãã¼ãµã¼ãå¼ã³åºããã¡ã½ããã¯XMLDocumentãè¿ãã¾ããä»ã®å¤ã¯ç¡å¹ã§ããã
TypeErrorãçºçãã¾ãã
è¿å¤
HTMLDocument ã¾ã㯠XMLDocument ã§ããããã㯠mimeType 弿°ã«ãã£ã¦æ±ºã¾ãã¾ãã
ä¾
>XMLãSVGãHTML ã®æ§æè§£æ
MIME ã¿ã¤ãã text/html ã®å ´å㯠HTML ãã¼ãµã¼ãèµ·åããããã®ä»ã®æå¹ãª MIME ã¿ã¤ãã®å ´å㯠XML ãã¼ãµã¼ãèµ·åããããã¨ã«æ³¨æãã¦ãã ãããä¾ãã°ãä¸è¨ã«ãã MIME ã¿ã¤ã application/xml 㨠image/svg+xml ã¯æ©è½çã«ã¯åä¸ã§ãããå¾è
ã«ã¯ SVG åºæã®è§£æã«ã¼ã«ã¯å«ã¾ãã¦ãã¾ããããã® 2 ã¤ãå¤å¥ããçç±ã¯ãã³ã¼ãã®æå³ãæç¢ºã«ããããã ãã§ãã
const parser = new DOMParser();
const xmlString = "<warning>Beware of the tiger</warning>";
const doc1 = parser.parseFromString(xmlString, "application/xml");
// XMLDocument
const svgString = '<circle cx="50" cy="50" r="50"/>';
const doc2 = parser.parseFromString(svgString, "image/svg+xml");
// XMLDocument
const htmlString = "<strong>Beware of the leopard</strong>";
const doc3 = parser.parseFromString(htmlString, "text/html");
// HTMLDocument
console.log(doc1.documentElement.textContent);
// "Beware of the tiger"
console.log(doc2.firstChild.tagName);
// "circle"
console.log(doc3.body.firstChild.textContent);
// "Beware of the leopard"
ã¨ã©ã¼å¦ç
æ´å½¢å¼ã® XML ã表ãã¦ããªãæååãXMLãã¼ãµã¼ã§ä½¿ç¨ããå ´åã parseFromString ã«ãã£ã¦è¿ããã XMLDocument ã«ã¯ãæ§æè§£æã¨ã©ã¼ã®æ§è³ªãè¨è¿°ãã <parsererror> ãã¼ããå«ã¾ãã¾ãã
const parser = new DOMParser();
const xmlString = "<warning>Beware of the missing closing tag";
const doc = parser.parseFromString(xmlString, "application/xml");
const errorNode = doc.querySelector("parsererror");
if (errorNode) {
// æ§æè§£æã«å¤±æ
} else {
// æ§æè§£æã«æå
}
ããã«ãæ§æè§£æã¨ã©ã¼ããã©ã¦ã¶ã¼ã® JavaScript ã³ã³ã½ã¼ã«ã«å ±åãããå ´åãããã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| HTML > # dom-domparser-parsefromstring-dev > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
XMLSerializerJSON.parse()-JSONææ¸ã§å¯¾å¿ãããã®ã