Google Apps脚本中的html编码问题

1 google-apps-script

我需要将HTML实体字符转换为它们的unicode版本.例如,当我有&amp,我想&.是否有一个特殊功能,或者我必须replace()为每对HTML Entity character< - > 使用该功能Unicode character

提前致谢.

Cor*_*y G 9

即使Apps Script中没有DOM,您也可以解析HTML并以这种方式获取纯文本:

function getTextFromHtml(html) {
  return getTextFromNode(Xml.parse(html, true).getElement());
}

function getTextFromNode(x) {
  switch(x.toString()) {
    case 'XmlText': return x.toXmlString();
    case 'XmlElement': return x.getNodes().map(getTextFromNode).join('');
    default: return '';
  }
}
Run Code Online (Sandbox Code Playgroud)

调用

getTextFromHtml("hello <div>foo</div>&amp; world <br /><div>bar</div>!");
Run Code Online (Sandbox Code Playgroud)

将返回

"你好foo&world bar!".

为了解释,将第二个参数作为"true"的Xml.parse将文档解析为HTML页面.然后我们遍历文档(将使用缺少的HTML和BODY元素等修补并转换为有效的XHTML页面),将文本节点转换为文本并展开所有其他节点.