邮件格式的html、xml渲染问题、以及对DOMParser的理解

有个需求要求把邮件内容渲染到页面中,后端从Microsoft Outlook文档导出或生成的一段html代码,要把这段代码以邮件里面的格式展示出来可以这样渲染

  1. 使用DOMParser解析html/xml
  2. 解析出的document获取根元素
  3. 获取你想要渲染的元素
  4. 通过设置element.interHTML 和outerHTML 属性的值,将部分 DOM 替换为从 HTML 构建的新 DOM 树。
const Xml = (xmlString) => {
   
    const parser = new DOMParser();
    const xmlDoc = parser.parseFromString(xmlString, "text/html");
    const bodyElement = xmlDoc.getElementsByTagName("body")[0];
    const emailContent = window.document.getElementById("emailContent");
    if (bodyElement) {
      const firstDiv = bodyElement.getElementsByTagName("div")[0];
      console.log(firstDiv);
      if (firstDiv) {
        emailContent.innerHTML = firstDiv.innerHTML;
        // return firstDiv; map渲染直接导出不会有想要结果,要用map渲染可以加一个setTimeout
      }
    } else {
      console.log("No <body> element found.");
    }
  };

对DOMParser的理解

DOMParser可以将储存在字符串中的XMLh或html源代码解析为一个DOMdocument

语法

    const parser = new DOMParser();

方法

const xmlDoc = parser.parseFromString(String,mineType);

返回值

根据mineType参数,返回Document或者XMLDocument或者其它文档类型

参数

        string

                要解析的DOMstring。必须包含HTML、xml、xhtml+xml 或svg

        mineType

                text/html:返回Document

                text/xml:返回XMLDocument

                 application/xml:返回XMLDocument

                 application/xhtml+xml:返回XMLDocument 

                 image/svg+xml:返回XMLDocument

错误处理

如果解析失败,DOMParser 不会抛出任何异常,而是会返回一个给定的错误文档:

<parsererror xmlns="http://www.mozilla.org/newlayout/xml/parsererror.xml">
(error description)
<sourcetext>(a snippet of the source XML)</sourcetext>
</parsererror>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值