ææ¶ï¼ä½ å¯è½éè¦è§£æ XML å 容ï¼å¹¶æå®è½¬æ¢ä¸º DOM æ ï¼æè ï¼åè¿æ¥å°ç°æç DOM æ åºååæ XMLã卿¬æä¸ï¼æä»¬å°äºè§£ web 平尿ä¾ç对象ï¼ä»¥ä¾¿è½»æ¾å°å®æåºåååè§£æ XML ç常è§ä»»å¡ã
XMLSerializer
åºåå DOM æ ï¼æå®ä»¬è½¬æ¢æå å« XML çå符串ã
DOMParser
éè¿è§£æä¸ä¸ªå
å« XML çåç¬¦ä¸²æ¥æå»º DOM æ ï¼è¿åä¸ä¸ªåºäºè¾å
¥æ°æ®çéå½ç XMLDocument
æè
æ¯ Document
ã
XMLHttpRequest
ä»ä¸ä¸ª URL ä¸å è½½å
容ï¼XML çå
容被ä½ä¸ºä¸ä¸ªå¸¦æå
建 XML ç DOM æ ç XML Document
对象è¿åã
ä¸ç§å建å å« XML ææ¡£ç¹å®é¨åçå°åï¼å¹¶åºäºè¿äºå°åè¿è¡ XML èç¹å®ä½çåç¬¦ä¸²çææ¯ã
使ç¨ä»¥ä¸æ¹æ³æ¥å建ä¸ä¸ª XML ææ¡£ï¼è¯¥ææ¡£æ¯ Document
çä¸ä¸ªå®ä¾ã
ä¸é¢è¿ä¸ªä¾åä½¿ç¨ DOMParser
æå符串ä¸ç XML çæ®µè½¬æ¢ä¸º DOM æ ï¼
const xmlStr = '<q id="a"><span id="b">ä½ å¥½ï¼</span></q>';
const parser = new DOMParser();
const doc = parser.parseFromString(xmlStr, "application/xml");
// æå°æ ¹å
ç´ çåç§°æé误信æ¯
const errorNode = doc.querySelector("parsererror");
if (errorNode) {
console.log("è§£ææ¶éå°é误");
} else {
console.log(doc.documentElement.nodeName);
}
æ URL å¯å¯»åçèµæºè§£ææ DOM æ ä½¿ç¨ fetch
ä¸å示ä¾ä»£ç 读åä¸ä¸ª URL å¯å¯»åç XML æä»¶ï¼å¹¶å°å ¶è§£ææ DOM æ ï¼
fetch("example.xml")
.then((response) => response.text())
.then((text) => {
const parser = new DOMParser();
const doc = parser.parseFromString(text, "text/xml");
console.log(doc.documentElement.nodeName);
});
è¿äºä»£ç å°èµæºä»¥ææ¬å符串çå½¢å¼è·åï¼ç¶åä½¿ç¨ DOMParser.parseFromString()
æå»º XMLDocument
ã
å¦æææ¡£æ¯ HTMLï¼ä¸é¢ç代ç å°è¿åä¸ä¸ª Document
ãå¦æææ¡£æ¯ XMLï¼é£å¾å°ç对象å®é
䏿¯ä¸ä¸ª XMLDocument
ãè¿ä¸¤ç§ç±»åå®è´¨ä¸æ¯ä¸æ ·çï¼ä¸åç¹å¤§é¨åæ¯åå²éççï¼å°½ç®¡åºåå®ä»¬ä¹ä¼æä¸äºå®é
好å¤ã
夿³¨ï¼ äºå®ä¸ï¼HTMLDocument
乿¯ä¸ä¸ªæ¥å£ï¼ä½æ¯å®ä¸å¿
æ¯ä¸ä¸ªç¬ç«çç±»åãå¨ä¸äºæµè§å¨ä¸å®æ¯ï¼ä½å¨å¦å¤ä¸äºæµè§å¨ä¸å®ä»
ä»
æ¯ Document
æ¥å£çå«åã
ç»å®ä¸ä¸ª Document
ï¼ä½ å¯ä»¥ä½¿ç¨ XMLSerializer.serializeToString()
æ¹æ³æææ¡£ç DOM æ åºåå为 XMLã
使ç¨ä¸é¢çæ¹æ³æ¥åºååå¨åé¢çé¨åä¸å建ç XML ææ¡£å 容ã
æ DOM æ åºååæå符串é¦å
ï¼ä½¿ç¨ä½¿ç¨ææ¡£å¯¹è±¡æ¨¡åä¸çæ¹æ³æå»ºä¸ä¸ª DOM æ ãä¹å¯ä»¥ä½¿ç¨ä» fetch()
ä¸è·å¾ç DOM æ ã
为äºå° DOM æ doc
åºåå为 XML ææ¬ï¼è°ç¨ XMLSerializer.serializeToString()
ï¼
const serializer = new XMLSerializer();
const xmlStr = serializer.serializeToString(doc);
åºåå HTML ææ¡£
å¦æä½ æä¸ç DOM æ¯ä¸ä¸ª HTML ææ¡£ï¼ä½ å¯ä»¥ä½¿ç¨ serializeToString()
å°å
¶åºååï¼ä½æ¯ä¹æä¸ä¸ªæ´ç®åçéæ©ï¼ç´æ¥ç¨ Element.innerHTML
屿§ï¼å¦æä½ ä»
ä»
æ³å¾å°æå®èç¹çå代çè¯ï¼æ Element.outerHTML
屿§ï¼å¦æä½ æ³å¾å°èç¹æ¬èº«å宿æçå代çè¯ï¼ã
const docInnerHtml = document.documentElement.innerHTML;
å æ¤ï¼docInnerHtml
æ¯ä¸ä¸ªå
å« HTML å
å®¹çææ¡£çåç¬¦ä¸²ï¼æ¢å¥è¯æ¥è¯´ï¼ä¹æ¯ <body>
å
ç´ çå
容ã
ä½ å¯ä»¥ä½¿ç¨ä»¥ä¸ä»£ç å¾å° <body>
åå®çå代对åºç HTMLï¼
const docOuterHtml = document.documentElement.outerHTML;
åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4