我需要将 HTML 实体字符转换为它们的 unicode 版本。例如,当我有 时&
,我只想要&
。是否有特殊功能,或者我必须replace()
为每一对HTML Entity character
<-->使用该功能Unicode character
?
提前致谢。
我需要将 HTML 实体字符转换为它们的 unicode 版本。例如,当我有 时&
,我只想要&
。是否有特殊功能,或者我必须replace()
为每一对HTML Entity character
<-->使用该功能Unicode character
?
提前致谢。
即使 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>& world <br /><div>bar</div>!");
将返回
“你好 foo& 世界酒吧!”。
解释一下,第二个参数为“true”的 Xml.parse 将文档解析为 HTML 页面。然后我们遍历文档(将用缺少的 HTML 和 BODY 元素等进行修补,并转换为有效的 XHTML 页面),将文本节点转换为文本并扩展所有其他节点。
在 Javascript 中(我假设这就是您正在使用的),没有内置函数,但您可以将内容分配给 html 标记,然后读出文本。这是一个使用 jQuery 的例子:
function htmlDecode(value){
return $('<div/>').html(value).text();
}
请注意,标签不需要实际附加到 DOM。这只是创建一个新标签,读出其内容,然后将其丢弃。只需几行额外的代码,您就可以在 vanilla Javascript 中完成非常相似的事情。