1

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

提前致谢。

4

2 回答 2

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 '';
  }
}

打电话

getTextFromHtml("hello <div>foo</div>&amp; world <br /><div>bar</div>!");

将返回

“你好 foo& 世界酒吧!”。

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

于 2012-11-08T16:22:03.130 回答
-1

在 Javascript 中(我假设这就是您正在使用的),没有内置函数,但您可以将内容分配给 html 标记,然后读出文本。这是一个使用 jQuery 的例子:

function htmlDecode(value){ 
  return $('<div/>').html(value).text(); 
}

请注意,标签不需要实际附加到 DOM。这只是创建一个新标签,读出其内容,然后将其丢弃。只需几行额外的代码,您就可以在 vanilla Javascript 中完成非常相似的事情。

于 2012-11-08T15:21:02.803 回答